1. kubeadm安装
1.1 配置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=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
1.2 安装kubeadm、kubelet、kubectl
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
特定版本
yum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6
1.3 启动kubelet服务
systemctl start kubelet
systemctl enable kubelet
1.4 关闭swap系统交换区
swapoff -a
2. 修改kubeadm默认配置
# 输出kubeadm init命令默认参数内容
kubeadm config print init-defaults
# 输出kubeadm join命令默认参数内容
kubeadm config print join-defaults
#在新旧版本之间进行配置转换
kubeadm config migrate
#列出所需的镜像列表
kubeadm config images list
#拉取镜像到本地
kubeadm config images pull
kubeadm config print init-defaults > init.default.yaml
3. 初始化kubernetes
3.1 拉取镜像
kubeadm init --kubernetes-version=1.25.0 \
--apiserver-advertise-address=192.168.31.130 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
3.2 报错: Error getting node“ err=“node
如果安装的kubelet kubeadm kubectl
是V1.24就会出现以上错误,安装的时候指定一下1.23版本,就可以解决了:yum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6
3.3 报错: [ERROR CRI]: container runtime is not running:
rm -rf /etc/containerd/config.toml
systemctl restart containerd
3.3 初始化中途失败
kubeadm reset
3.4 配置docker
进入/etc/docker/daemon.json文件,修改配置内容
vim /etc/docker/daemon.json
加入如下内容
"exec-opts": ["native.cgroupdriver=systemd"]
然后使其生效
sudo systemctl daemon-reload && sudo systemctl restart docker
3.5 报错:The connection to the server localhost:8080 was refused 导出环境变量
vim /etc/profile
#最后一行加上
export KUBECONFIG=/etc/kubernetes/admin.conf
# 使变量生效
source /etc/profile
4. 安装新的Node加入集群
4.1 安装kubeadm和kubelet
yum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6 --disableexcludes=kubernetes
4.2 启动kubelet服务
systemctl start kubelet
systemctl enable kubelet
4.3 配置docker
进入/etc/docker/daemon.json文件,修改配置内容
vim /etc/docker/daemon.json
加入如下内容
"exec-opts": ["native.cgroupdriver=systemd"]
然后使其生效
sudo systemctl daemon-reload && sudo systemctl restart docker
4.4 加入集群
kubeadm join 192.168.31.130:6443 --token spf92b.51the9cry2lmyguj \
--discovery-token-ca-cert-hash sha256:bf8d6603be81276b70f7d91b39e9434568ea11655ef5143a5af940aaabe222b0
5. 安装CNI网络插件
kubectl apply -f "https://docs.projectcalico.org/manifests/calico.yaml"
5.1 报错:open /run/flannel/subnet.env: no such file or directory
每个节点都配置该文件
vim /run/flannel/subnet.env
FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.0.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true
5.2 报错:hostPath type check failed:is not a directory
更改路径或者 type: Directory 改为 type: DirectoryOrCreate
参考:https://blog.csdn.net/weixin_43144516/article/details/118445728
参考:https://blog.csdn.net/weixin_47049334/article/details/126341792
参考:https://www.jianshu.com/p/a4ec985977c2
参考:https://blog.csdn.net/qq_26545503/article/details/123183184
参考:https://blog.csdn.net/qq_26545503/article/details/123183184
网友评论