日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

手把手一起 图形化安装 k8s 集群

發布時間:2024/8/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手把手一起 图形化安装 k8s 集群 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者 | 小碗湯

來源 |?我的小碗湯

今天接著上一節,使用 KuboardSpray 圖形化安裝kubernetes集群[1],記錄了安裝時可能遇到的問題。對此項目感興趣的同學,不妨親手實踐一下~

以下記錄了安裝單節點(單master的集群),示例使用版本為:

  • Kuboard Spray版本為v1.0.0-alpha.1,也是截止2022.01.04最新版本。

  • 操作系統版本:CentOS Linux release 7.9.2009

  • 內核版本:3.10.0-1160.31.1.el7.x86_64

配置

Add Node添加節點:NodeName為master01,NodeRoles為控制平面、etcd節點、工作節點。具體根據自己需求來規劃。

Global Config配置:

  • SSH部分需要輸入用戶名和密碼;

  • ContainerManager部分:有containerd和docker可選擇,這里選擇docker

Global Config配置,OS Mirror部分,選擇預置的操作系統配置源:

Kubernetes配置部分,可以自定義集群泛域名后綴,Event保留時間,是否允許匿名用戶訪問,kubelet日志級別,網絡CIDR,節點上maxPod,網絡插件有Flannel和calico可選:

ETCD配置部分,有容器化部署和二進制部署可選:

Addons開啟了net_checker和Metrics,作為集群監控組件:

這里重點提一下net_checker:

Kubespray提供了一種使用?Netchecker?通過集群 IP 自動驗證 Pod 到 Pod 的連接性,并檢查 DNS 解析是否正常運行。這些檢查由agent定期運行,并涵蓋容器網絡和主機網絡 pod。執行檢查的歷史信息可以在agent應用程序日志中找到。并作為集群健康指標,報告到server,以metrics接口的方式暴露指標。

可能的報錯

Apply之后,執行安裝時報錯:

TASK?[bastion-ssh-config?:?set?bastion?host?IP?and?port]?*********************** task?path:?/data/resource/spray-master-8d9ed01_k8s-v1.23.1_v1.0-amd64/content/3rd/kubespray/roles/bastion-ssh-config/tasks/main.yml:2 fatal:?[bastion?->?localhost]:?FAILED!?=>?{"msg":?"The?task?includes?an?option?with?an?undefined?variable.?The?error?was:?'dict?object'?has?no?attribute?'bastion'\n\nThe?error?appears?to?be?in?'/data/resource/spray-master-8d9ed01_k8s-v1.23.1_v1.0-amd64/content/3rd/kubespray/roles/bastion-ssh-config/tasks/main.yml':?line?2,?column?3,?but?may\nbe?elsewhere?in?the?file?depending?on?the?exact?syntax?problem.\n\nThe?offending?line?appears?to?be:\n\n---\n-?name:?set?bastion?host?IP?and?port\n??^?here\n" }PLAY?RECAP?********************************************************************* bastion????????????????????:?ok=3????changed=0????unreachable=0????failed=1????skipped=22???rescued=0????ignored=0??? localhost??????????????????:?ok=4????changed=0????unreachable=0????failed=0????skipped=0????rescued=0????ignored=0

根據報錯信息bastion host IP and port可以猜到是跳板機host和port導致的,但我并沒有enable跳板機選項:

根據報錯指向的文件,到kuboard-spray容器中排查main.yml,如下:

#?docker?exec?-ti?kuboard-spray?bash root@41b1a241a852:/kuboard-spray#?cat?/data/resource/spray-master-8d9ed01_k8s-v1.23.1_v1.0-amd64/content/3rd/kubespray/roles/bastion-ssh-config/tasks/main.yml --- -?name:?set?bastion?host?IP?and?portset_fact:bastion_ip:?"{{?hostvars[groups['bastion'][0]]['ansible_host']?|?d(hostvars[groups['bastion'][0]]['ansible_ssh_host'])?}}"bastion_port:?"{{?hostvars[groups['bastion'][0]]['ansible_port']?|?d(hostvars[groups['bastion'][0]]['ansible_ssh_port'])?|?d(22)?}}"delegate_to:?localhostconnection:?local#?省略

這里能看到需要獲取跳板機(bastion)下的host和port,其實根據我們的選項,這個任務都不應該執行。

集群配置清單其實在kuboard-spray容器中/data/cluster/yourclustername/inventory.yaml文件中,其中包含了bastion信息:

root@41b1a241a852:/data/cluster/smallsoup#?cat?inventory.yaml? all:hosts:bastion:ansible_host:?""ansible_user:?""

需要刪除hosts.bastion。

sed?-i?'/bastion:/d'?inventory.yaml? sed?-i?'/ansible_host:?""/d'?inventory.yaml? sed?-i?'/ansible_user:?""/d'?inventory.yaml

這就懵逼了,跳板機host和port怎么會設置為空值呢?

事情經過是這樣的:

一開始我手殘點了一下enable,想看看有沒有需要填寫的。因為是測試環境,無需跳板機,所以就disable了。然而,這個版本有bug,disable時沒有清理干凈inventory.yaml中的配置,這是一個bug[2],這個bug作者會在后續版本中修復。

這個問題解決后繼續安裝。

繼續安裝

后面的安裝還算順利。重新點擊Apply即可安裝成功:

注意點

如果之前主機上有docker,執行安裝時會reload docker,即發生重啟,重啟之后刷新頁面重新點擊Apply即可安裝成功。

查看集群

#?kubectl??get?node NAME???????STATUS???ROLES??????????????????AGE???VERSION master01???Ready????control-plane,master???29m???v1.23.1#?systemctl?status?etcd#?kubectl??get?ippool NAME???????????AGE default-pool???29m#?kubectl??get?pod?-A NAMESPACE?????NAME?????????????????????????????????????READY???STATUS????RESTARTS??????AGE default???????netchecker-agent-8fs2m???????????????????1/1?????Running???0?????????????30m default???????netchecker-agent-hostnet-vknsm???????????1/1?????Running???0?????????????30m default???????netchecker-server-59fcd6bf86-5mtkn???????2/2?????Running???1?(30m?ago)???30m kube-system???calico-kube-controllers-bd5fc6b6-h6ghc???1/1?????Running???0?????????????31m kube-system???calico-node-z6kwp????????????????????????1/1?????Running???0?????????????31m kube-system???coredns-5c5b9c5cb-lb8wl??????????????????1/1?????Running???0?????????????30m kube-system???dns-autoscaler-7874cf6bcf-jz6qw??????????1/1?????Running???0?????????????30m kube-system???kube-apiserver-master01??????????????????1/1?????Running???0?????????????32m kube-system???kube-controller-manager-master01?????????1/1?????Running???1?????????????32m kube-system???kube-proxy-9c5tm?????????????????????????1/1?????Running???0?????????????31m kube-system???kube-scheduler-master01??????????????????1/1?????Running???1?????????????32m kube-system???metrics-server-6b957b8494-kmsbp??????????1/1?????Running???0?????????????30m kube-system???nodelocaldns-rq79f???????????????????????1/1?????Running???0?????????????30m

可以看到

  • 一個master節點的集群創建成功

  • etcd二進制部署

  • metrics-server和netchecker正常

  • calico使用kubernetes CRD作為datastore

我們可以通過netchecker-server的地址獲取指標:

curl?http://{主機IP}:31081/metrics

參考資料

[1]

使用 KuboardSpray 圖形化安裝kubernetes集群:?https://liabio.blog.csdn.net/article/details/122292548

[2]

這是一個bug:?https://github.com/eip-work/kuboard-spray/issues/3

往期推薦

為什么還有這么多的網絡故障?

k8s集群居然可以圖形化安裝了?

用了HTTPS,沒想到還是被監控了

快速搭建實驗環境:使用 Terraform 部署 Proxmox 虛擬機

點分享

點收藏

點點贊

點在看

總結

以上是生活随笔為你收集整理的手把手一起 图形化安装 k8s 集群的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。