溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

docker kubernetes dashboard安裝部署的方法

發(fā)布時(shí)間:2022-05-26 16:21:43 來(lái)源:億速云 閱讀:433 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“docker kubernetes dashboard安裝部署的方法”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“docker kubernetes dashboard安裝部署的方法”文章能幫助大家解決問(wèn)題。

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 客戶(hù)端
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). 訪(fǎng)問(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客戶(hù)端.
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訪(fǎng)問(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):其一,客戶(hù)端配置有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)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI