【Kubernetes】Ubuntu 24.04 安装 K3s v1.33.2+k3s
欢迎来到这份超详细的文档!这里将引导你在 Ubuntu 24.04 上轻松部署 K3s 1.33.2 并更新证书为 10 年有效期。一起来看看如何实现吧!
- 操作系统:Ubuntu 24.04
- Docker:1.47
- K3s:v1.33.2+k3s
- 下方仅一个主节点(master)为例
1、查看系统环境
# 查看 kernel
uanme -a
# 查看当前操作系统
cat /etc/os-release
2、安装 Docker
# 更新本地软件仓库的索引文件
apt-get -y update
# 安装最新版 Docker(也可指定下载版本 apt-get -y install docker.io=20.10.* )
apt-get -y install docker.io
# 验证 Docker 安装成功
docker version
3、安装 K3s
3.1、确定下载的版本
- 此处下载 K3s v1.33.2+k3s1
wget -c "https://get.k3s.io" -O install.sh
wget -c "https://github.com/k3s-io/k3s/releases/download/v1.33.2%2Bk3s1/k3s"
wget -c "https://github.com/k3s-io/k3s/releases/download/v1.33.2%2Bk3s1/k3s-airgap-images-amd64.tar.gz"
- 也可在 github 上下载对应文件上传至服务器(可选)
3.2、配置以 docker 方式启动
# 配置以 docker 方式启动
mkdir -p /etc/rancher/k3s/
tee /etc/rancher/k3s/config.yaml <<-'EOF'
docker: true
tls-san: k3s.domain.com
service-node-port-range: 30000-40000
kubelet-arg: system-reserved=cpu=500m,memory=512Mi,ephemeral-storage=1024Mi,pid=100
kubelet-arg: kube-reserved=cpu=500m,memory=512Mi,ephemeral-storage=1024Mi,pid=100
kubelet-arg: eviction-hard=memory.available<1024Mi,nodefs.available<10%,imagefs.available<10%
kubelet-arg: eviction-minimum-reclaim=memory.available=500Mi,nodefs.available=500Mi,imagefs.available=500Mi
EOF
3.3、导入镜像
# 导入镜像
docker load -i k3s-airgap-images-amd64.tar.gz
# 查看镜像导入成功
docker images
3.4、执行脚本安装
# 拷贝 K3S 到 bin 目录
cp -f k3s /usr/local/bin/
# 设置执行权限
chmod 700 /usr/local/bin/k3s
chmod 700 install.sh
# 执行 install.sh 脚本安装(INSTALL_K3S_SKIP_DOWNLOAD:跳过下载,直接使用系统里已有的文件,离线安装使用)
INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh
# 验证安装成功
systemctl status k3s
4、配置使用 kubectl 命令
4.1、配置 Kubectl 命令
# 下载对应版本 kubelet
curl -LO "https://dl.k8s.io/release/v1.33.2/bin/linux/amd64/kubectl"
# 下载 kubectl 校验文件并校验 kubectl,校验输出 OK 表明验证成功(可选)
curl -LO "https://dl.k8s.io/v1.33.2/bin/linux/amd64/kubectl.sha256"
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check
# 安装 kubectl
install -o root -g root -m 0755 kubectl /usr/bin/kubectl
# 将 k3s config 文件拷贝到对应位置
mkdir -p ~/.kube/config
cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
4.2、运行测试 Pod
# 查看 kube-system 命名空间下的 Pod 是否正常
kubectl get pod -A
# 运行测试 pod
kubectl run nginx-test --image=nginx:latest
kubectl get pod nginx-test
5、配置证书 10 年
# 查看证书有效期
k3s certificate check
# 1.停止服务
systemctl stop k3s
systemctl status k3s
# 2.配置环境变量
cat << EOF > /etc/default/k3s
CATTLE_NEW_SIGNED_CERT_EXPIRATION_DAYS=3650
EOF
# 3.执行证书轮换
# 以下证书将被轮换:supervisor、kube-proxy、kubelet、k3s-controller、api-server、admin、scheduler、etcd、auth-proxy、cloud-controller、controller-manager
k3s certificate rotate
# 4.重启服务
systemctl start k3s
# 验证证书有效期已更新为 10 年
k3s certificate check
# 需要在其他 Control-plane/etcd 节点重复操作 1~4 的步骤确保整个集群的证书一致更新