福州网站设计大概多少钱,网站进度条,免费网站后台,汉阴网站建设作者 | 小碗汤来源 | 我的小碗汤今天接着上一节#xff0c;使用 KuboardSpray 图形化安装kubernetes集群[1]#xff0c;记录了安装时可能遇到的问题。对此项目感兴趣的同学#xff0c;不妨亲手实践一下~以下记录了安装单节点#xff08;单master的集群#xff09;#xf… 作者 | 小碗汤来源 | 我的小碗汤今天接着上一节使用 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为master01NodeRoles为控制平面、etcd节点、工作节点。具体根据自己需求来规划。Global Config配置SSH部分需要输入用户名和密码ContainerManager部分有containerd和docker可选择这里选择dockerGlobal Config配置OS Mirror部分选择预置的操作系统配置源Kubernetes配置部分可以自定义集群泛域名后缀Event保留时间是否允许匿名用户访问kubelet日志级别网络CIDR节点上maxPod网络插件有Flannel和calico可选ETCD配置部分有容器化部署和二进制部署可选Addons开启了net_checker和Metrics作为集群监控组件这里重点提一下net_checkerKubespray提供了一种使用 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 : ok3 changed0 unreachable0 failed1 skipped22 rescued0 ignored0
localhost : ok4 changed0 unreachable0 failed0 skipped0 rescued0 ignored0根据报错信息bastion host IP and port可以猜到是跳板机host和port导致的但我并没有enable跳板机选项根据报错指向的文件到kuboard-spray容器中排查main.yml如下# docker exec -ti kuboard-spray bash
root41b1a241a852:/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信息root41b1a241a852:/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了。然而这个版本有bugdisable时没有清理干净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 虚拟机点分享点收藏点点赞点在看