溫馨提示×

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

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

kubeadm部署k8s集群以及dashboard頁面

發(fā)布時(shí)間:2020-07-29 07:55:20 來源:網(wǎng)絡(luò) 閱讀:34118 作者:hero小執(zhí)著 欄目:云計(jì)算
一.部署環(huán)境(所有節(jié)點(diǎn)都做)
OS:CentOS Linux release 7.6.1810 (Core)
kernel: 3.10.0-957.21.3.el7.x86_64
1 臺(tái)master 2臺(tái)node
環(huán)境準(zhǔn)備(三臺(tái)機(jī)器都做以下操作)
1.1 關(guān)閉防火墻:
systemctl stop firewalld
systemctl disable firewalld
1.2 關(guān)閉selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config 
setenforce 0
1.3 關(guān)閉swap:
swapoff -a  # 臨時(shí)
sed -i 's/.*swap.*/#&/' /etc/fstab  # 永久
1.4 確保iptables可用:
echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables 
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
1.5 添加主機(jī)名與IP對(duì)應(yīng)關(guān)系:(三臺(tái)機(jī)器都做)
214.92 : hostnamectl set-hostname k8s-master && bash  #修改主機(jī)名并立即生效
214.97 : hostnamectl set-hostname k8s-node1 && bash
214.98 : hostnamectl set-hostname k8s-node2 && bash
cat /etc/hosts
192.168.214.92 k8s-master   #(ip根據(jù)自身實(shí)際情況修改)
192.168.214.97 k8s-node1    #(ip根據(jù)自身實(shí)際情況修改)
192.168.214.98 k8s-node2    #(ip根據(jù)自身實(shí)際情況修改)

kubeadm部署k8s集群以及dashboard頁面

1.6 配置國內(nèi)yum源:
 yum install -y wget

 mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak

 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo

 wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo

 yum clean all && yum makecache
1.7 配置kubenetes yum源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg         https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
所有設(shè)備均執(zhí)行如下命令
二.安裝docker和kube組件
yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0 docker-ce

設(shè)置開機(jī)自啟
systemctl enable docker 
systemctl enable kuhbelet

2.1 docker架構(gòu)關(guān)系圖
kubeadm部署k8s集群以及dashboard頁面

2.2 開啟docker和kubelet(所有節(jié)點(diǎn))
systemctl start docker
 systemctl start kubelet
2.3 下載所需docker鏡像(所有節(jié)點(diǎn)均做以下操作)

docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.15.0 
docker pull mirrorgooglecontainers/kube-controller-manager-amd64:v1.15.0 
docker pull mirrorgooglecontainers/kube-scheduler-amd64:v1.15.0 
docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.15.0 
docker pull mirrorgooglecontainers/pause:3.1 
docker pull mirrorgooglecontainers/etcd:3.3.10 
docker pull coredns/coredns:1.3.1 
2.4 鏡像打標(biāo)
docker tag docker.io/mirrorgooglecontainers/kube-apiserver-amd64:v1.15.0 k8s.gcr.io/kube-apiserver:v1.15.0 
docker tag docker.io/mirrorgooglecontainers/kube-scheduler:v1.15.0 k8s.gcr.io/kube-scheduler:v1.15.0 
docker tag docker.io/mirrorgooglecontainers/kube-controller-manager:v1.15.0 k8s.gcr.io/kube-controller-manager:v1.15.0 
docker tag docker.io/mirrorgooglecontainers/kube-proxy-amd64:v1.15.0  k8s.gcr.io/kube-proxy:v1.15.0
docker tag mirrorgooglecontainers/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10 
docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1 
docker tag coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1
2.5 忽略swap報(bào)錯(cuò)
[root@master ~]# vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
2.6 初始化master(只做master節(jié)點(diǎn))安裝
 kubeadm init  --kubernetes-version=v1.15.0 --ignore-preflight-errors=Swap  --ignore-preflight-errors=Numcpu --pod-network-cidr 10.244.0.0/16
#指定版本,忽略swap和cpu報(bào)錯(cuò)
#10.244.0.0/16為pod網(wǎng)絡(luò)  
初始化集群出錯(cuò)時(shí),需要所有節(jié)點(diǎn)清掉這些數(shù)據(jù).可用以下命令
kubeadm reset
systemctl stop kubelet
 docker rm -f -v $(docker ps  -a -q)
 rm -rf /etc/kubernetes
 rm -rf  /var/lib/etcd
rm -rf   /var/lib/kubelet
  rm -rf  $HOME/.kube/config
 iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
 yum reinstall -y kubelet
 systemctl daemon-reload
  systemctl restart docker
2.7 kubectl 客戶端用戶配置文件配置
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
2.8 記錄安裝后輸出,供后面添加node節(jié)點(diǎn)使用

kubeadm部署k8s集群以及dashboard頁面

2.9 安裝flannel網(wǎng)絡(luò)
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
2.10 加入master(在node節(jié)點(diǎn)執(zhí)行)
復(fù)制master節(jié)點(diǎn)剛才輸出的token(在兩個(gè)節(jié)點(diǎn)分別執(zhí)行,)
[root@node1 ~]#kubeadm join 192.168.214.92:6443 --token ltsy9m.gscdwrfr12klwdb0     --discovery-token-ca-cert-hash sha256:b7aaaedb8df894499bf01413c549e48b844e20c15a91d2e174447dfcad88ba5b --ignore-preflight-errors=all

kubeadm部署k8s集群以及dashboard頁面

[root@node2 ~]# kubeadm join 192.168.214.92:6443 --token gdpagl.n2vzci4kh5zdy4s1 --discovery-token-ca-cert-hash sha256:261d86818a0271eb997e5a9f5ef1ced0585b526fefdef0c18a53884b3b02bdf2 --ignore-preflight-errors=all
kubeadm部署k8s集群以及dashboard頁面

2.11 node節(jié)點(diǎn)加入master失敗時(shí),需要清除數(shù)據(jù)重新reset,刪除cnio網(wǎng)絡(luò),可用以下命令:
kubeadm reset
systemctl stop kubelet
docker rm -f -v $(docker ps  -a -q)
rm -rf /etc/kubernetes
rm -rf  /var/lib/etcd
rm -rf   /var/lib/kubelet
rm -rf  $HOME/.kube/config
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
yum reinstall -y kubelet
systemctl daemon-reload
systemctl restart docker

2.12 kubectl get nodes && kubectl get cs 查看集群狀態(tài)
kubeadm部署k8s集群以及dashboard頁面


三.搭建dashboard(mster節(jié)點(diǎn)操作)

這里我已經(jīng)把dashboard寫好了,直接下載我的上傳的你的root目錄即可。
kubernetes-dashboard.yaml鏈接:https://pan.baidu.com/s/14hwEGoCnzOw40m17HeYjfQ



3.1 創(chuàng)建dasahbord

kubectl create -f /root/kubernetes-dashboard.yaml
3.2 查看pod
kubectl get pod -n kube-system -o wide
3.3 查看service(dashboard端口30000是否映射成功)
kubectl get service -n kube-system
kubeadm部署k8s集群以及dashboard頁面

所有的pod狀態(tài)為running即可

kubeadm部署k8s集群以及dashboard頁面
3.4 瀏覽器訪問(這里瀏覽器推薦火狐,其他的可能不兼容)如果用谷歌瀏覽器無法訪問可參照此文檔解決 https://www.jianshu.com/p/8021285cc37d。
https://ip:port
例如我的是:https://192.168.214.92:30000
kubeadm部署k8s集群以及dashboard頁面
3.5創(chuàng)建admin權(quán)限賬號(hào)(否則進(jìn)入頁面沒有超級(jí)權(quán)限)
kubectl create serviceaccount dashboard-admin -n kube-system
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin


3.6獲取token登陸dashboard頁面

kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
kubeadm部署k8s集群以及dashboard頁面

kubeadm部署k8s集群以及dashboard頁面

4.大功告成
kubeadm部署k8s集群以及dashboard頁面

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

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI