ubuntu24.04安装kubernetes1.32.6
本文介绍通过kubeadm 安装kubernetes。
官网安装文档地址:https://kubernetes.io/docs/setup/production-environment/tools/
环境准备:
ubuntu3:(主节点)192.168.0.111
ubuntu4:(工作节点)192.168.0.112
1、安装前准备
关闭交换分区
# 关闭交换分区(主节点、工作节点) sudo swapoff -a sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
设置主机名
# (主节点) echo ubuntu3 > /etc/hostname # (工作节点) echo ubuntu4 > /etc/hostname
修改hosts文件
# hosts文件添加以下内容(主节点、工作节点) 192.168.0.111 ubuntu3 192.168.0.112 ubuntu4
配置网络参数
https://v1-32.docs.kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd

# 5. 配置网络参数 cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1 # 允许ipv4包转发 EOF
sudo sysctl --system
2、安装容器运行时(主节点、工作节点)
这里安装contained容器运行时,参见docker 官网安装地址:https://docs.docker.com/engine/install/ubuntu/
卸载冲突的安装包
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
设置apt库
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
安装最新版本
# 这里我们只安装 containerd.io,不安装官网提供的docker-engine了 sudo apt-get install containerd.io
配置containerd 使用 systems 类型的cgroup driver
# 配置 containerd sudo mkdir -p /etc/containerd # 生成默认的配置文件 containerd config default | sudo tee /etc/containerd/config.toml # 将SystemdCgroup修改为true
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
# 修改沙箱(pause)镜像为阿里云的镜像
[plugins."io.containerd.grpc.v1.cri"]
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.10"
# 重启容器sudo systemctl restart containerdsudo systemctl enable containerd
3、安装kubernetes组件(主节点、工作节点)
参见官网:https://v1-32.docs.kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
更新apt包
sudo apt-get update # apt-transport-https may be a dummy package; if so, you can skip that package sudo apt-get install -y apt-transport-https ca-certificates curl gpg
下载公钥
# If the directory `/etc/apt/keyrings` does not exist, it should be created before the curl command, read the note below. # sudo mkdir -p -m 755 /etc/apt/keyrings curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
添加apt资源
# This overwrites any existing configuration in /etc/apt/sources.list.d/kubernetes.list echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
跟新apt,同时安装kubelet、kubeadm、kubectl
sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl
# 锁定版本,防止自动更新
sudo apt-mark hold kubelet kubeadm kubectl允许kubelet服务在运行kubeadm之前
sudo systemctl enable --now kubelet
4、使用kubeadm 创建集群(主节点)
初始化控制面板
sudo kubeadm init \ --apiserver-advertise-address=192.168.0.111 \ --pod-network-cidr=10.244.0.0/16 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version=v1.32.6 \ --v=5
init之前可以检查需要拉取的镜像,或者进行预拉取,
# 检查需要拉取哪些镜像
kubeadm config images list --kubernetes-version=v1.32.6
# 预拉取镜像
sudo kubeadm config images pull --kubernetes-version=v1.32.6
初始化过程中回去拉取对应的镜像,如果拉取失败,则手动拉取后进行初始化(上面的命令使用阿里云镜像也拉取失败了,后来使用的手动拉取),手动拉取成功后,再执行上面的命令。需要注意的是版本问题,如果版本对不上也会走网络去拉取镜像。
# 使用阿里云镜像源重新初始化 sudo kubeadm init \ --pod-network-cidr=10.244.0.0/16 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version=v1.32.6 # 或手动拉取镜像 kubeadm config images pull \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version=v1.32.6 # 如果使用containerd 作为容器运行时,可以使用以下命名查看下载好的镜像 crictl images
初始化成功后,命令行会输出用户需要执行的配置命令

# 配置 kubectl mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
安装网络插件(pod之间通信)
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
# 注意使用国外flannel镜像安装可能会失败
# 下载 Flannel 配置文件(使用国内源)# 下载Flannel配置文件wget https://raw.githubusercontent.com/flannel-io/flannel/v0.25.0/Documentation/kube-flannel.yml# 修改镜像地址为国内源sed -i 's#docker.io/flannel#registry.cn-hangzhou.aliyuncs.com/google_containers#' kube-flannel.yml
# 由于国内网络访问 GitHub 的raw.githubusercontent.com可能受限,导致无法直接下载 flannel 配置文件,我们可以通过以下解决# 使用国内镜像站点下载kube-flannel.ymlwget https://ghproxy.com/https://raw.githubusercontent.com/flannel-io/flannel/v0.25.0/Documentation/kube-flannel.ymlkubectl apply -fkube-flannel.yml
加入工作节点(初始完成之后会自动输出加入工作节点的命令)
# 加入工作节点(工作节点、或控制节点,如果控制节点也要作为node工作节点的话)
kubeadm join 192.168.0.111:6443 --token 19qtg8.06sh6y82qm5whqut \ --discovery-token-ca-cert-hash sha256:747e30d8ccda31af8927ec01fa91e96bc43f99b1608b4ebaeab8bbaf2a492758
# 如果忘记了,可以通过以下命令重新获取kubeadm token create --print-join-command
查看集群状态
kubectl get nodes # 输出应显示所有节点 Ready(ready状态才是正常的) NAME STATUS ROLES AGE VERSION k8s-master Ready control-plane 5m v1.29.0 k8s-node1 Ready <none> 2m v1.29.0 kubectl get pods -A # 检查所有 Pod 是否 Running
如果出现cni的问题:

参考:https://www.cnblogs.com/niuben/p/18804685
5、清理旧集群
如果 集群init 初始化失败,可以执行以下命令后,重新进行下载进行和init操作
sudo kubeadm reset --force # 强制重置,删除所有 Kubernetes 配置 sudo rm -rf /etc/cni/net.d # 清理 CNI 网络配置 sudo rm -rf $HOME/.kube # 删除用户目录下的 kubeconfig # 清理容器运行时环境,如果使用 Docker sudo docker rm -f $(sudo docker ps -aq) # 删除所有容器 sudo docker system prune -a -f # 清理所有未使用的镜像和缓存 # 清理容器运行时环境,如果使用 containerd sudo crictl rm -f $(sudo crictl ps -aq) # 删除所有容器 sudo crictl rmi --prune # 清理所有未使用的镜像
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号