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 containerd
sudo 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.yml
wget https://ghproxy.com/https://raw.githubusercontent.com/flannel-io/flannel/v0.25.0/Documentation/kube-flannel.yml
kubectl apply -f kube-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的问题:

image

 参考: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                  # 清理所有未使用的镜像

 

 

posted @ 2025-07-13 23:09  远洪  阅读(147)  评论(0)    收藏  举报