您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)docker kubernetes dashboard如何安裝部署的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
1. 環(huán)境說(shuō)明:
1). 架構(gòu):
注: 本次實(shí)驗(yàn)服務(wù)器環(huán)境均采用centos 7. 服務(wù)安裝均采用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). 軟件包說(shuō)明:
docker: 主角,不用說(shuō)了
kubernetes-master: kubernetes 服務(wù)端
kubernetes-node: kubernetes 客戶端
etcd: 服務(wù)器發(fā)現(xiàn)的鍵值存儲(chǔ)
flannel: 打通多臺(tái)服務(wù)器上的docker容器之間的網(wǎng)絡(luò)互通
2. 環(huán)境初始化:
你都搞docker了,初始化該做些什么,我就不教你了.
備份現(xiàn)有的yum源文件,搞一個(gè)阿里云的yum源,epel源.
地址: http://mirrors.aliyun.com
3. 安裝配置docker:
注: docker采用net模式. 確保device-mapper軟件包已經(jīng)安裝,否則docker無(wú)法啟動(dòng).
1). 安裝 # yum install docker -y 2). 配置 # cat /etc/sysconfig/docker|egrep -v "^#|^$" OPTIONS='' DOCKER_CERT_PATH=/etc/docker
4. 配置master
1). 安裝軟件包. # yum install kubernetes-master etcd flannel-y 2). 配置etcd. # cat /etc/etcd/etcd.conf |egrep -v "^#|^$" ETCD_NAME=default ETCD_DATA_DIR="/var/lib/etcd/default.etcd" ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" ## 監(jiān)聽(tīng)地址端口 ETCD_ADVERTISE_CLIENT_URLS="http://192.168.3.7:2379" ## etcd集群配置;多個(gè)etcd服務(wù)器,直接在后面加url
##啟動(dòng)etcd服務(wù)
# systemctl start etcd
3). 配置kubernetes.
在/etc/kubernetes 目錄中有以下幾個(gè)文件:
apiserver: kubernetes api 配置文件
config: kubernetes 主配置文件
controller-manager: kubernetes 集群管理配置文件
scheduler: kubernetes scheduler配置文件
# cd /etc/kubernetes KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" ## kube啟動(dòng)時(shí)綁定的地址 KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.3.7:2379" ## kube調(diào)用etcd的url KUBE_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 項(xiàng)目,否則在后期中會(huì)報(bào)出沒(méi)有認(rèn)證錯(cuò)誤. # 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 兩個(gè)文件采用默認(rèn)配置即可.
5. 配置nodes
1). 安裝軟件包.
# yum install kubernetes-node flannel -y
2). 配置kubernetes node
安裝完軟件包之后,會(huì)在/etc/kubernetes目錄下出現(xiàn)以下文件:
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 啟動(dòng)后綁定的地址 KUBELET_PORT="--port=10250" ## kubelet 端口 KUBELET_HOSTNAME="--hostname-override=192.168.3.16" ##kubelet的hostname,在master執(zhí)行kubectl get nodes顯示的名字 KUBELET_API_SERVER="--api-servers=http://192.168.3.7:8080" ## kube master api url KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest" KUBELET_ARGS=""
proxy 配置默認(rèn)即可.
6. 網(wǎng)絡(luò)配置:
master和node均已經(jīng)安裝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和上文中出現(xiàn)的ip地址保持一致.
node配置:
# cat /etc/sysconfig/flanneld |egrep -v "^#|^$" FLANNEL_ETCD="http://192.168.3.7:2379" FLANNEL_ETCD_KEY="/kube/network"
7. 啟動(dòng)服務(wù).
1). 啟動(dòng)docker服務(wù).
# systemctl start docker
# ps aux|grep docker ## 確認(rèn)下服務(wù)是否正常啟動(dòng).如果沒(méi)有啟動(dòng)請(qǐng)移步/var/log/message看問(wèn)題
2). 啟動(dòng)etcd服務(wù)
# systemctl start etcd
3). 啟動(dòng)master 和node上的flanneld服務(wù)
# systemctl start flanneld
查看ip,會(huì)出現(xiàn)flannel0的網(wǎng)絡(luò)接口設(shè)備,該地址和docker0地址是一致的,如果不一致請(qǐng)確認(rèn)以上服務(wù)是否正常啟動(dòng)
4). 啟動(dòng)運(yùn)行在master上的k8s服務(wù).
啟動(dòng)順序:kube-apiserver居首.
# systemctl start kube-apiserver
# systemctl start kube-controller-manager
# systemctl start kube-scheduler
請(qǐng)確認(rèn)以上服務(wù)是否都有正常啟動(dòng).
5). 啟動(dòng)運(yùn)行在node上的k8s服務(wù).
# systemctl start kube-proxy
# systemctl start kubelet
請(qǐng)確認(rèn)以上服務(wù)是否都有正常啟動(dòng).
6). 訪問(wèn)http://kube-apiserver:port
http://192.168.3.7:8080 查看所有請(qǐng)求url
http://192.168.3.7:8080/healthz/ping 查看健康狀況
8. 開(kāi)啟k8s dashboard:
1). 在master上驗(yàn)證服務(wù). # kubectl get nodes ## 獲取k8s客戶端. NAME STATUS AGE 192.168.3.16 Ready 6h # kubectl get namespace ## 獲取k8s所有命名空間 NAME STATUS AGE default Active 17h 2). 在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.yaml namespace "kube-system" created # kubectl get namespace ## 獲取k8s所有命名空間 NAME STATUS AGE default Active 17h kube-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
請(qǐng)將文件中apiserver-host修改為自己的kebu-apiserver
創(chuàng)建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
驗(yàn)證:
# kubectl get pods --namespace=kube-system
NAME READY STATUS RESTARTS AGE
kubernetes-dashboard-3138400848-grtfm 1/1 ContainerCreating 0 27s
查看該容器的詳細(xì)過(guò)程:
# kubectl describe pods kubernetes-dashboard-3138400848-grtfm --namespace=kube-system
當(dāng)有多個(gè)node,可以用該命令中看到容器被分配到哪個(gè)node上,啟動(dòng)后分配的ip地址等信息.
如果在結(jié)果中看到"State: Running"時(shí),請(qǐng)移步到node查看容器運(yùn)行狀態(tài),應(yīng)該也是up的狀態(tài).
4). 此時(shí)可以通過(guò)http://kube-apiserver:port/ui訪問(wèn)
http://192.168.3.7:8080/ui
開(kāi)始盡情使用docker吧!
9. 注意點(diǎn)&遇到的問(wèn)題:
1). 注意服務(wù)的啟動(dòng)順序,特別是master,在確保etcd啟動(dòng)的情況下,先啟動(dòng)apiserver
2). 注意yaml文件的格式縮進(jìn).
3). 如果發(fā)現(xiàn)剛創(chuàng)建的pod的status是depening,原因可能有幾點(diǎn):其一,客戶端配置有l(wèi)isten 127.0.0.1的服務(wù),master無(wú)法與其建立連接;其二,環(huán)境初始化沒(méi)有做好;其三,移步node,使用docker logs 查看日志
4). kubernetes-dashboard.yaml文件中的containers images地址目前為公開(kāi)的,09月30日會(huì)關(guān)閉.
5). 如果自己有國(guó)外vps,可在服務(wù)器上創(chuàng)建docker registry;先pull下google的k8s dashboard,然后push到自己的registry,自己修改下yaml中的image即可.
感謝各位的閱讀!關(guān)于“docker kubernetes dashboard如何安裝部署”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。