离线安装k8s1.23.17
安装包装备
- k8s1.23.17.zip
- nfs-utils.zip
- calico.yaml
- 镜像准备
- load.sh
以上链接如果失效,请联系张师傅:ggttxlss
docker24.0.2离线安装
- docker24.0.2离线安装
- 执行load.sh加载镜像
sh load.sh
安装前准备
卸载老版本的kubernetes
kubeadm reset
# 输入y
rm -rf /root/.kube
rm -rf /etc/cni/net.d
rm -rf /etc/kubernetes/*
ipvsadm -C iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
yum list installed | grep kube
yum remove kube* -y
设置hostname
hostnamectl set-hostname k8s-master01
echo "192.168.xxx.xxx k8s-master01" >> /etc/hosts
关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
关闭swap
swapoff -a && sed -i 's/.*swap.*/#&/' /etc/fstab
关闭selinux
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
修改内核参数
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl --system
离线安装安装nfs存储
安装nfs
cd nfs-utils
rpm -ivh --force --nodeps *.rpm
让master成为nfs服务端(node节点不需要)
echo "/nfs/data/ *(insecure,rw,sync,no_root_squash)" > /etc/exports
# 执行以下命令,启动 nfs 服务;创建共享目录
mkdir -p /nfs/data
# 在master执行
systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
systemctl start nfs-server
# 使配置生效
exportfs -r
#检查配置是否生效
exportfs
离线安装kubeadm1.23.7
安装k8s
cd k8s1.23.17
rpm -ivh --force --nodeps *.rpm
sudo systemctl daemon-reload
sudo systemctl restart kubelet
sudo systemctl enable kubelet
配置k8s
修改kubelet的启动环境变量(每一台k8s内部的机器,都需要,这--eviction-hard=nodefs.available<10%,磁盘空间低于10%,开始驱逐pod)
vim /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
# Note: This dropin only works with kubeadm and kubelet v1.11+
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
变成
# Note: This dropin only works with kubeadm and kubelet v1.11+
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --eviction-hard=nodefs.available<10%"
修改后需要重新加载
systemctl daemon-reload && systemctl restart kubelet
使用kubeadm引导集群(参照初始化master继续做,node节点不需要)
#### --apiserver-advertise-address 的地址一定写成自己master机器的ip地址
#### 以下的只在master节点执行
kubeadm init \
--apiserver-advertise-address=192.168.xxx.xxx \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.17 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=10.10.0.0/16
去掉master上面的污点
kubectl taint nodes k8s-master01 node-role.kubernetes.io/master-
安装calico插件
kubectl apply -f calico.yaml
打印加入集群的命令
kubeadm token create --print-join-command
评论区