【Kubernetes】Ubuntu 24.04 安装 Kubernetes 1.30.14

欢迎来到这份超详细的文档!这里将引导你在 Ubuntu 24.04 上轻松部署 Kubernetes 1.30.1,希望通过这份指南,让你的 Kubernetes 之旅充满乐趣与收获,快来一起探索吧!

  • 操作系统:Ubuntu 24.04.2 LTS
  • Containerd:1.6.33
  • Kubernetes:1.30.14
  • 下方仅一个主节点为例(其中主节点 hostname 为 master,可根据实际情况修改)

1、安装 k8s 前的准备工作

1.1、查看操作系统版本

bash 复制代码
# 查看操作系统版本
cat /etc/os-release

1.2、关闭防火墙

bash 复制代码
# 关闭 ufw
ufw disable
# 查看为关闭状态
ufw status

1.3、关闭 swap 分区

bash 复制代码
# 查看 swap 分区是否存在
free -h
# 关闭当前会话的 swap,重启后无效
swapoff -a
# 永久关闭 swap ,需重启
sed -ri 's/.*swap.*/#&/' /etc/fstab
# 查看 swap 分区已关闭
free -h

1.4、配置内核

bash 复制代码
# 加载内核模块
modprobe overlay
modprobe br_netfilter

# 配置 sysctl 参数
cat <<EOF | tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

cat <<EOF | 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
EOF

# 应用配置
sysctl --system

2、安装 containerd

2.1、配置 docker 源安装

bash 复制代码
#  安装必要系统工具
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl

# 信任 Docker 的 GPG 公钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# 写入软件源信息
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
 
# 安装 containerd.io=1.6.33-1(可根据需要安装指定版本)
apt-get update
apt install -y containerd.io=1.6.33-1

2.2、配置 containerd 文件

bash 复制代码
# 创建 containerd 配置文件
mkdir -p /etc/containerd
containerd config default | tee /etc/containerd/config.toml

# 修改配置使用 systemd cgroup
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
# 替换为阿里云的镜像地址
sed -i "s#registry.k8s.io/pause#registry.cn-hangzhou.aliyuncs.com/google_containers/pause#g" /etc/containerd/config.toml

# 重启 containerd
systemctl restart containerd
systemctl enable containerd
systemctl status containerd

3. 安装 Kubernetes

3.1、配置阿里云仓库进行安装

bash 复制代码
# 添加 Kubernetes GPG 密钥
curl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
# 添加 Kubernetes 仓库
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/ /" | tee /etc/apt/sources.list.d/kubernetes.list
# 安装 kubelet、kubeadm、kubectl
apt-get update
apt-get install -y kubelet kubeadm kubectl

3.2、查看/下载所需的镜像

bash 复制代码
# 查看/下载所需的镜像
kubeadm config images list --kubernetes-version=v1.30.14 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers
kubeadm config images pull --kubernetes-version=v1.30.14 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers

3.3、初始化 master 节点

bash 复制代码
kubeadm init --apiserver-advertise-address=172.16.12.201 --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers --kubernetes-version=v1.30.14 --service-cidr=10.96.0.0/16 --pod-network-cidr=10.244.0.0/16

# 根据日志信息提示操作,执行下方命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf

3.4、部署 Calico 网络插件

bash 复制代码
# 安装 Calico
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/calico.yaml

3.5、查看节点状态变为 Ready

bash 复制代码
# 查看所有命名空间的 pod
kubectl get pod -A
# 查看所有节点
kubectl get node
# 允许在 Master 节点上调度 Pod(可选)
kubectl taint nodes --all node-role.kubernetes.io/control-plane-

3.6、工作节点

  • 工作节点部署同主节点类似,步骤 3.2 及以后无需执行,使用 "kubeadm join xxx" 命令加入主节点即可
相关推荐
SelectDB技术团队35 分钟前
Apache Doris 多云原生实践:SaaS、BYOC 与四大公有云覆盖
数据库·阿里云·云原生·华为云·腾讯云·亚马逊云·写入更新
名字还没想好☜9 小时前
Docker 容器安全加固实战:非 root、只读根文件系统、drop capabilities 与最小攻击面
运维·安全·docker·容器·kubernetes
鹤落晴春9 小时前
有状态应用 vs 无状态应用
运维·云原生·k8s
码--到成功9 小时前
Docker、Kubernetes安装系列 二
docker·容器·kubernetes
mohesashou11 小时前
k8s的service
云原生·容器·kubernetes
梦Arrebol13 小时前
Kubernetes 微服务
微服务·容器·kubernetes
阿里云云原生13 小时前
Agent 开发范式演进:在通用智能与业务深度之间寻找“正交”平衡点
云原生
源代码•宸14 小时前
前置准备:定时微服务背景和现状
开发语言·经验分享·后端·微服务·云原生·架构·golang
实战派K8S&DB15 小时前
《基于 Dify + FastAPI + PyTiDB 搭建大模型驱动的 TiDB 智能运维 Agent》
运维·数据库·分布式·云原生·tidb·fastapi
想要成为老金高手15 小时前
Kubernetes 调度器详解:从 nodeName 到污点容忍
java·容器·kubernetes