【愚公系列】2022年04月 Kubernetes容器集群快速部署之kind高可用集群

      網(wǎng)友投稿 614 2025-04-04

      一、kind配置HA高可用集群


      k8s普通搭建出來只是單master節(jié)點,如果該節(jié)點掛掉,則整個集群都無法調(diào)度,K8s高可用集群是用多個master節(jié)點加負(fù)載均衡節(jié)點組成,外層再接高可用分布式存儲集群例如ceph集群,實現(xiàn)計算能力+存儲能力的高可用,同時,etcd也可以獨立出來用外部的etcd集群。因為存手工部署k8s高可用集群比較麻煩,所以使用kind來部署。

      Kubernetes集群組件主要有如下:

      etcd 一個高可用的K/V鍵值對存儲和服務(wù)發(fā)現(xiàn)系統(tǒng)

      flannel 實現(xiàn)夸主機(jī)的容器網(wǎng)絡(luò)的通信

      kube-apiserver 提供kubernetes集群的API調(diào)用

      kube-controller-manager 確保集群服務(wù)

      kube-scheduler 調(diào)度容器,分配到Node

      kube-proxy 提供網(wǎng)絡(luò)代理服務(wù)

      kubeadm:用來初始化集群的指令

      kubectl: 用來與集群通信的命令行工具。通過kubectl可以部署和管理應(yīng)用,查看各種資源,創(chuàng)建、刪除和更新各種組件

      kubelet 運行在集群中的每個節(jié)點上,用來啟動 pod 和 container 等

      k8s集群高可用,一般是etcd、kube-apiserver、kube-controller-manager、kube-scheduler服務(wù)組件的高可用。

      1.配置文件

      kind-example-config.yaml配置案例如下:

      kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane - role: control-plane - role: worker - role: worker

      2.創(chuàng)建集群

      kind create cluster --name yg-ha --config kind-ha.yml

      3.查看集群信息

      kubectl cluster-info --context yg-ha

      4.查看集群節(jié)點列表

      kubectl get nodes

      5.部署nginx服務(wù)

      5.1 加載鏡像到集群

      kind load docker-image nginx:1.12 --name yg-ha

      5.2 查看集群鏡像是否存在

      docker exec -it yg-ha-control-plane bash crictl img

      5.3 部署

      使用下方代碼創(chuàng)建一個 nginx.yml 文件,然后使用 kubectl apply -f nginx.yml 就可以完成部署了

      apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.12 ports: - containerPort: 80

      查看當(dāng)前 deployment 的狀態(tài)

      kubectl get deployment

      查看pod運行詳細(xì)信息

      kubectl get nodes -o wide

      由于我們沒有做服務(wù)暴露,所以是不能直接訪問對應(yīng)的服務(wù)的,我們可以用 kubectl提供的端口轉(zhuǎn)發(fā)功能來講流量從本地轉(zhuǎn)發(fā)給 k8s 集群

      kubectl port-forward nginx-deployment-84fc49578f-28sth 30080:80

      訪問nginx地址:http://localhost:30080

      二、節(jié)點的添加

      1.master節(jié)點添加到cluster

      【愚公系列】2022年04月 Kubernetes容器集群快速部署之kind高可用集群

      1.1 同步證書文件

      將node1證書文件復(fù)制到其他master節(jié)點node2,node3

      for host in node2 node3 do echo ">>>>>>>>>>>>>>>>>>>>$host<<<<<<<<<<<<<<<<<<<<<" ssh $host "mkdir -p /etc/kubernetes/pki/etcd" scp /etc/kubernetes/pki/ca.* $host:/etc/kubernetes/pki/ scp /etc/kubernetes/pki/sa.* $host:/etc/kubernetes/pki/ scp /etc/kubernetes/pki/front-proxy-ca.* $host:/etc/kubernetes/pki/ scp /etc/kubernetes/pki/etcd/ca.* $host:/etc/kubernetes/pki/etcd/ scp /etc/kubernetes/admin.conf $host:/etc/kubernetes/ done

      1.2 其他master加入集群

      查看master的token

      kubeadm token list | grep authentication,signing | awk '{print $1}'

      查看discovery-token-ca-cert-hash

      openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

      注意:token有效期是有限的,如果舊的token過期,可以使用kubeadm token create --print-join-command重新創(chuàng)建一條token。

      分別在master1和master2 執(zhí)行下面的命令來加入集群,注意要修改token和ca-cert-hash為上面查詢出來的結(jié)果

      kubeadm join 130.252.10.233:8443 --token abcdef.0123456789abcdef \ --discovery-token-ca-cert-hash sha256:4d95989174b67c857bed7313750e021f07ec56beb2e6e764c7ef2de5645187e9 \ --experimental-control-plane --ignore-preflight-errors=Swap mkdir -p $HOME/.kube

      cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config

      2.將node節(jié)點添加到cluster

      kubeadm join 130.252.10.233:8443 --token abcdef.0123456789abcdef \ --discovery-token-ca-cert-hash sha256:4d95989174b67c857bed7313750e021f07ec56beb2e6e764c7ef2de5645187e9 \ --ignore-preflight-errors=Swap

      總結(jié)

      kind 在創(chuàng)建集群的時候?qū)嶋H上使用的是 kubeadm 所以還可以修改 kubeadm 的配置來修改默認(rèn)的鏡像地址,節(jié)點標(biāo)簽污點等信息,除此之外還可以配置 PV/PVC CNI 插件等配置,如果有需求的話可以查閱 kind 的官方文檔

      不過要注意的是 kind 不支持給運行的集群添加節(jié)點,如果需要多節(jié)點集群的話得提前規(guī)劃好節(jié)點數(shù)量或者使用Karmada,Karmada是依賴于kind 創(chuàng)建集群的,基于kind的再次封裝可以支持節(jié)點的加入。

      Kubernetes 容器

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:可以一次查找多少個項目嗎(查找其他項目)
      下一篇:效果播放(播放器特效)
      相關(guān)文章
      国产亚洲欧洲Aⅴ综合一区 | 国产国拍亚洲精品福利 | 亚洲一区二区三区在线观看网站| 亚洲黄色在线观看视频| 亚洲an天堂an在线观看| 亚洲精品无码不卡| 亚洲综合日韩中文字幕v在线| 亚洲国产老鸭窝一区二区三区| 亚洲国产老鸭窝一区二区三区 | 久久精品国产亚洲AV未满十八| 亚洲国产欧美国产综合一区| 亚洲精品无码mⅴ在线观看| 亚洲成av人片天堂网无码】| 亚洲AV第一成肉网| 国产精品亚洲一区二区三区| 亚洲成人国产精品| 亚洲视频在线精品| 亚洲人成色777777在线观看| 亚洲爆乳精品无码一区二区三区 | 日本红怡院亚洲红怡院最新| 亚洲av综合avav中文| 亚洲一区二区三区电影| 18gay台湾男同亚洲男同| 亚洲精品动漫在线| 亚洲国产成人精品激情| 亚洲色成人四虎在线观看| 久久久久久亚洲精品无码| 亚洲日韩中文在线精品第一 | 国产亚洲欧洲Aⅴ综合一区 | 亚洲国产精品国自产拍电影| 久久久久亚洲Av无码专| 亚洲国产亚洲片在线观看播放| 国产色在线|亚洲| 亚洲AV性色在线观看| 亚洲精品国产自在久久| 亚洲日韩小电影在线观看| 久久水蜜桃亚洲av无码精品麻豆| 亚洲国产成人精品无码区在线网站| 亚洲免费福利在线视频| 国产成人人综合亚洲欧美丁香花| 亚洲综合亚洲综合网成人|