首先我是根据这个博主的视频来安装的,真的很全,安装了两边才成功,其中也遇到了一些大家遇到的通用问题,在这里记录一下。希望帮到大家。
!B站教程:【马士兵教育】云原生:助力数字化转型 引领未来发展,2023年最新版云原生架构师完整教程(K8s+golang+代驾项目+dockers+devops)_哔哩哔哩_bilibili
!评论区获得配置文档:https://cloud.fynote.com/share/d/IcInOR5h 提取码:g3an
!!!注意:文档中一些东西跟教程不完全相同,复制的时候记得仔细比对视频,以视频为主。本人吃过亏! 以下是视频中没提到的补充。
1. 安装前必备操作(所有主机操作)
Selinux关闭,建议不要暂时关闭,重启之后又会开,如果不是一天内配置完成,后边集群初始化的时候可能出问题。
getenforce #输出可能是
Enforcing
、Permissive
或Disabled
。永久关闭 SELinux
打开 SELinux 配置文件
sudo vi /etc/selinux/config
找到以下行:
SELINUX=enforcing
将其修改为:
SELINUX=disabled
保存并退出编辑器。
重启系统以使更改生效:
sudo reboot
验证SELinux状态:
sestatus #输出中如果显示SELinux status: disabled
,说明已成功关闭。
防火墙关闭,理由同上
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
如果不关闭集群初始化遇到的问题如下:
Swap没有做
1. 临时禁用 swapoff -a (不建议)
2. 永久禁用
sed -i 's/.*swap.*/#&/' /etc/fstab运行这个命令后,
/etc/fstab
文件中所有包含swap
的行都会被注释掉(在行首添加#
)。/dev/mapper/centos-root / xfs defaults 0 0 UUID=e4bf7e74-e3cb-4570-8590-84ead780d281 /boot xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 #禁用后,第三行用“#” /dev/mapper/centos-root / xfs defaults 0 0 UUID=e4bf7e74-e3cb-4570-8590-84ead780d281 /boot xfs defaults 0 0 #/dev/mapper/centos-swap swap swap defaults 0 0
内核参数调整
cat >> /etc/sysctl.d/k8s.conf << EOF
vm.swappiness=0
EOF
sysctl -p /etc/sysctl.d/k8s.conf #配置生效3. 检查当前是否有活动的 swap
即使
/etc/fstab
中没有启用 swap,系统可能仍然在使用 swap。通过以下命令检查:方法 1:使用
free
命令free -h
total used free shared buff/cache available Mem: 7.6G 2.1G 3.4G 200M 2.1G 5.0G Swap: 2.0G 0B 2.0G
total used free shared buff/cache available Mem: 7.6G 2.1G 3.4G 200M 2.1G 5.0G Swap: 0B 0B 0B
如果
Swap
行显示为0B
,说明当前没有活动的 swap。如果
Swap
行显示非零值,说明仍有 swap 在使用。方法 2:使用
swapon
命令swapon --show
如果没有任何输出,说明当前没有启用 swap。
如果有输出(例如
/dev/mapper/centos-swap
),说明仍有 swap 在使用。
IPtables没安装
参考配置文档中具体操作。
2. docker 镜像拉本地出现问题
本来按照教程做的配置加速文件时,但是拉到本地出现这个问题
配置加速器文件
]# cat >> /etc/docker/daemon.json <<-EOF
{
"registry-mirrors": [
"http://74f21445.m.daocloud.io",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],
"insecure-registries": ["kubernetes-register.sswang.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
重启docker服务
systemctl restart docker
说明上边的镜像不可以,我的解决办法:
修改daemon.json 文件,这样就可以成功了,记得下载到master完成之后再删除这两行,不然之后master跟node这个配置文件不一致,后边会出错!
vim /etc/docker/daemon.json { "registry-mirrors": [ "https://docker.1ms.run", "https://docker.1panel.live/" ] } #把之前的registry-mirrors加上这两行
重新加载配置文件和重启docker,使配置生效。
sudo systemctl daemon-reload sudo systemctl restart docker
3. docker仓库
安装docker-compose
yum install -y docker-compose
出现以下问题
[root@kubernetes-register harbor] yum install dokcer-compose -y 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 没有可用软件包 dokcer-compose。 错误:无须任何处理
解决办法:启用 EPEL 源,有时可以通过启用 EPEL(Extra Packages for Enterprise Linux)源来安装
docker-compose
。就可以成功解决。#安装 EPEL 源: sudo yum install epel-release -y #尝试再次安装: sudo yum install docker-compose -y
4. 集群收尾工作flannel
[root@kubernetes-master flannel]# grep image: kube-flannel.yml
image: ghcr.io/flannel-io/flannel:v0.26.5
image: ghcr.io/flannel-io/flannel-cni-plugin:v1.6.2-flannel1#需要拉取这两个镜像到本地
image: ghcr.io/flannel-io/flannel:v0.26.5
解决办法:
[root@kubernetes-master flannel] docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/flannel-io/flannel:v0.26.5 [root@kubernetes-master flannel] docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/flannel-io/flannel-cni-plugin:v1.6.2-flannel1
记得打标签的时候具体到仓库,不然docker push会出现以下问题
问题原因:这个push是把本地push到register(也就是主机名字为kubernetes-register.sswang.com的sswang仓库下)加上上你那个register的tag,不然这样push是push到ghcr那个公有仓库上。
[root@kubernetes-master flannel]docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/flannel-io/flannel-cni-plugin:v1.6.2-flannel1 kubernetes-register.sswang.com/sswang/flannel-cni-plugin:v1.6.2-flannel1
[root@kubernetes-master flannel]docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/flannel-io/flannel:v0.26.5 kubernetes-register.sswang.com/sswang/flannel:v0.26.5
# 先打标签
#下面是推送到本地
[root@kubernetes-master flannel]docker push kubernetes-register.sswang.com/sswang/flannel-cni-plugin:v1.6.2-flannel1
The push refers to repository [kubernetes-register.sswang.com/sswang/flannel-cni-plugin]
c15a89e1b413: Pushed
e21721183b10: Pushed
v1.6.2-flannel1: digest: sha256:eace2bd0fa91aef181f8b5b4b2088c4988462c5e6ae94c58afc99e8bda6fbe1b size: 739
[root@kubernetes-master flannel]docker push kubernetes-register.sswang.com/sswang/flannel:v0.26.5
The push refers to repository [kubernetes-register.sswang.com/sswang/flannel]
c9d114c6b40a: Pushed
5f70bf18a086: Mounted from sswang/tomcat
85bcf66ed2fb: Pushed
1f163ba17049: Pushed
0f452d14e54a: Pushed
3d31077e5264: Pushed
d7fa89c91c59: Pushed
e8eef8f20cf1: Pushed
f11677e2878f: Pushed
e21721183b10: Mounted from sswang/flannel-cni-plugin
v0.26.5: digest: sha256:b3b5ee6cb47cb5ed1afd553dde6a85a0c7ab6b114acdbdf49641b12579604039 size: 2414
5. 开机自启动组件
master以及node上kubelet cri-dockerd docker都必须开机自启动,很明显下边kubectl没有开机自启动。
root@kubernetes-node1 ~]# systemctl is-active kubelet cri-dockerd docker
unknown
active
active
1. 启用开机自启
使用
systemctl
命令启用kubelet
的开机自启:systemctl enable kubelet
执行成功后,你会看到类似以下输出:
Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service.
2. 重启测试
重启服务器以验证
kubelet
是否在系统启动后自动运行:reboot
3. 验证设置
再次检查
kubelet
的状态,确认它已被设置为开机自启:systemctl is-enabled kubelet
如果返回
enabled
,说明设置成功。
以上就是我遇到的认为有必要记录的问题,后续更新k8s上监控组件例如Prometheus,Kiali等组建的学习,后续还有Istio上的学习,喜欢的话就点个赞吧~