docker kubernetes dashboard安装部署详细介绍
Docker  /  管理员 发布于 4年前   406
docker之kubernetes dashboard部署
1. 环境说明:
1). 架构:
注: 本次实验服务器环境均采用centos 7. 服务安装均采用yum install.
192.168.3.7 master
192.168.3.16 node
2).使用的软件包:
master: docker kubernetes-master etcd flannel
nodes: docker kubernetes-node flannel
3). 软件版本:
docker: 1.10.3
kubernetes*: 1.2.0
etcd: 2.3.7
4). 软件包说明:
docker: 主角,不用说了
kubernetes-master: kubernetes 服务端
kubernetes-node: kubernetes 客户端
etcd: 服务器发现的键值存储
flannel: 打通多台服务器上的docker容器之间的网络互通
2. 环境初始化:
你都搞docker了,初始化该做些什么,我就不教你了.
备份现有的yum源文件,搞一个阿里云的yum源,epel源.
地址: http://mirrors.aliyun.com
3. 安装配置docker:
注: docker采用net模式. 确保device-mapper软件包已经安装,否则docker无法启动.
1). 安装# yum install docker -y2). 配置# cat /etc/sysconfig/docker|egrep -v "^#|^$"OPTIONS=''DOCKER_CERT_PATH=/etc/docker
4. 配置master
1). 安装软件包.# yum install kubernetes-master etcd flannel-y2). 配置etcd.# cat /etc/etcd/etcd.conf |egrep -v "^#|^$"ETCD_NAME=defaultETCD_DATA_DIR="/var/lib/etcd/default.etcd"ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" ## 监听地址端口ETCD_ADVERTISE_CLIENT_URLS="http://192.168.3.7:2379" ## etcd集群配置;多个etcd服务器,直接在后面加url
##启动etcd服务
# systemctl start etcd
3). 配置kubernetes.
在/etc/kubernetes 目录中有以下几个文件:
apiserver: kubernetes api 配置文件
config: kubernetes 主配置文件
controller-manager: kubernetes 集群管理配置文件
scheduler: kubernetes scheduler配置文件
# cd /etc/kubernetesKUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" ## kube启动时绑定的地址KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.3.7:2379" ## kube调用etcd的urlKUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=172.17.0.0/16" ## 此地址是docker容器的地址段KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"KUBE_API_ARGS=""注意KUBE_ADMISSION_CONTROL这一行的配置: 移除ServiceAccount 项目,否则在后期中会报出没有认证错误.# cat config |egrep -v "^#|^$"KUBE_LOGTOSTDERR="--logtostderr=true"KUBE_LOG_LEVEL="--v=0"KUBE_ALLOW_PRIV="--allow-privileged=false"KUBE_MASTER="--master=http://192.168.3.7:8080" ## kube master api url
controller-manager scheduler 两个文件采用默认配置即可.
5. 配置nodes
1). 安装软件包.
# yum install kubernetes-node flannel -y
2). 配置kubernetes node
安装完软件包之后,会在/etc/kubernetes目录下出现以下文件:
config: kubernetes 主配置文件
kubelet: kubelet node配置文件
proxy: kubernetes proxy 配置文件
# cd /etc/kubernetes# cat config |egrep -v "^#|^$"KUBE_LOGTOSTDERR="--logtostderr=true"KUBE_LOG_LEVEL="--v=0"KUBE_ALLOW_PRIV="--allow-privileged=false"KUBE_MASTER="--master=http://192.168.3.7:8080" ## kube master api url# cat kubelet |egrep -v "^#|^$"KUBELET_ADDRESS="--address=0.0.0.0" ## kubelet 启动后绑定的地址KUBELET_PORT="--port=10250" ## kubelet 端口KUBELET_HOSTNAME="--hostname-override=192.168.3.16" ##kubelet的hostname,在master执行kubectl get nodes显示的名字KUBELET_API_SERVER="--api-servers=http://192.168.3.7:8080" ## kube master api urlKUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"KUBELET_ARGS=""
proxy 配置默认即可.
6. 网络配置:
master和node均已经安装flannel
master配置:
# cat /etc/sysconfig/flanneld |egrep -v "^#|^$"FLANNEL_ETCD="http://192.168.3.7:2379"FLANNEL_ETCD_KEY="/kube/network"# etcdctl mk /kube/network/config '{"Network":"172.17.0.0/16"}' ## 注意此处的ip和上文中出现的ip地址保持一致.
node配置:
# cat /etc/sysconfig/flanneld |egrep -v "^#|^$"FLANNEL_ETCD="http://192.168.3.7:2379"FLANNEL_ETCD_KEY="/kube/network"
7. 启动服务.
1). 启动docker服务.
# systemctl start docker
# ps aux|grep docker ## 确认下服务是否正常启动.如果没有启动请移步/var/log/message看问题
2). 启动etcd服务
# systemctl start etcd
3). 启动master 和node上的flanneld服务
# systemctl start flanneld
查看ip,会出现flannel0的网络接口设备,该地址和docker0地址是一致的,如果不一致请确认以上服务是否正常启动
4). 启动运行在master上的k8s服务.
启动顺序:kube-apiserver居首.
# systemctl start kube-apiserver
# systemctl start kube-controller-manager
# systemctl start kube-scheduler
请确认以上服务是否都有正常启动.
5). 启动运行在node上的k8s服务.
# systemctl start kube-proxy
# systemctl start kubelet
请确认以上服务是否都有正常启动.
6). 访问http://kube-apiserver:port
http://192.168.3.7:8080 查看所有请求url
http://192.168.3.7:8080/healthz/ping 查看健康状况
8. 开启k8s dashboard:
1). 在master上验证服务.# kubectl get nodes ## 获取k8s客户端.NAME STATUS AGE192.168.3.16 Ready 6h# kubectl get namespace ## 获取k8s所有命名空间NAME STATUS AGEdefault Active 17h2). 在master上新建kube-system的namespace# cd /usr/local/src/docker# cat kube-namespace.yaml{"kind": "Namespace","apiVersion": "v1","metadata": {"name": "kube-system"}}# kubectl create -f kube-namespace.yamlnamespace "kube-system" created# kubectl get namespace ## 获取k8s所有命名空间NAME STATUS AGEdefault Active 17hkube-system Active 17h
3). 在master上新建kube-dashboard.yaml
wget http://docs.minunix.com/docker/kubernetes-dashboard.yaml -O /usr/local/src/docker/kube-dashboard.yaml
请将文件中apiserver-host修改为自己的kebu-apiserver
创建pod:
# kubectl create -f kube-dashboard.yaml
deployment "kubernetes-dashboard" created
You have exposed your service on an external port on all nodes in your
cluster. If you want to expose this service to the external internet, you may
need to set up firewall rules for the service port(s) (tcp:31576) to serve traffic.
See http://releases.k8s.io/release-1.2/docs/user-guide/services-firewalls.md for more details.
service "kubernetes-dashboard" created
验证:
# kubectl get pods --namespace=kube-system
NAME READY STATUS RESTARTS AGE
kubernetes-dashboard-3138400848-grtfm 1/1 ContainerCreating 0 27s
查看该容器的详细过程:
# kubectl describe pods kubernetes-dashboard-3138400848-grtfm --namespace=kube-system
当有多个node,可以用该命令中看到容器被分配到哪个node上,启动后分配的ip地址等信息.
如果在结果中看到"State: Running"时,请移步到node查看容器运行状态,应该也是up的状态.
4). 此时可以通过http://kube-apiserver:port/ui访问
http://192.168.3.7:8080/ui
开始尽情使用docker吧!
9. 注意点&遇到的问题:
1). 注意服务的启动顺序,特别是master,在确保etcd启动的情况下,先启动apiserver
2). 注意yaml文件的格式缩进.
3). 如果发现刚创建的pod的status是depening,原因可能有几点:其一,客户端配置有listen 127.0.0.1的服务,master无法与其建立连接;其二,环境初始化没有做好;其三,移步node,使用docker logs 查看日志
4). kubernetes-dashboard.yaml文件中的containers images地址目前为公开的,09月30日会关闭.
5). 如果自己有国外vps,可在服务器上创建docker registry;先pull下google的k8s dashboard,然后push到自己的registry,自己修改下yaml中的image即可.
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号