debian13.3安装k8s

K8s安装Flannel版本v1.0

参考链接:https://blog.csdn.net/Yuriey/article/details/155103719?fromshare=blogdetail&sharetype=blogdetail&sharerId=155103719&sharerefer=PC&sharesource=lishuang1999&sharefrom=from_link

环境 debian13.3 x86

复制代码
 HOSTNAME=test

1 基础环境

1.1 安装基础工具

复制代码
 sudo apt update && sudo apt upgrade -y
 sudo apt install -y curl gnupg2 lsb-release apt-transport-https ca-certificates curl 

1.2 禁止使用交换空间

复制代码
 sudo swapoff -a
 sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

1.3 修改主机名称和时区

注意:k8s只支持小写主机名称,如果不是单机管理,要注意多节点主机名称不能一致

复制代码
 sudo hostnamectl set-hostname $HOSTNAME
复制代码
 sudo timedatectl set-timezone Asia/Shanghai
 sudo systemctl restart systemd-timesyncd.service

1.4 开启流量转发

复制代码
 cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
 net.ipv4.ip_forward = 1
 EOF

应用:

复制代码
 sudo sysctl --system

1.5 镜像配置

将下面的加入到文件/etc/docker/daemon.json里面

复制代码
 "registry-mirrors": [
     "https://registry.cn-hangzhou.aliyuncs.com",
     "https://docker.mirrors.ustc.edu.cn",
     "http://hub-mirror.c.163.com",
     "https://docker.1panel.live",
     "https://hub.littlediary.cn",
     "https://docker.kejilion.pro",
     "https://docker.1ms.run",
     "https://lispy.org",
     "https://docker.xiaogenban1993.com",
     "https://docker.xuanyuan.me",
     "https://docker.mybacc.com",
     "https://docker-0.unsee.tech",
     "https://dockerpull.cn",
     "https://docker.hpcloud.cloud",
     "https://docker.m.daocloud.io",
     "https://docker.unsee.tech",
     "http://mirrors.ustc.edu.cn",
     "https://docker.chenby.cn",
     "http://mirror.azure.cn",
     "https://dockerpull.org",
     "https://dockerhub.icu",
     "https://hub.rat.dev",
     "https://mirror.iscas.ac.cn",
     "https://ccr.ccs.tencentyun.com",
     "https://dockercf.jsdelivr.fyi",
     "https://docker.jsdelivr.fyi"
   ]
复制代码
 sudo systemctl daemon-reload && sudo systemctl restart docker

2 安装容器运行时

(1)首先检查是否存在containerd,使用containerd -v查看.

情况1:存在,直接配置

复制代码
 containerd -v
 containerd github.com/containerd/containerd v1.7.25 bcc810d6b9066471b0b6fa75f557a15a1cbf31bb

情况2:不存在,下载

复制代码
 wget https://github.com/containerd/containerd/releases/download/v2.2.0/containerd-2.2.0-linux-amd64.tar.gz
 sudo tar Cxzvf /usr/local containerd-2.2.0-linux-amd64.tar.gz
 wget https://raw.githubusercontent.com/containerd/containerd/v2.2.0/containerd.service
 sudo mv containerd.service /usr/lib/systemd/system/
 sudo systemctl daemon-reload
 sudo systemctl enable --now containerd

(2)然后配置容器运行时

复制代码
 sudo mkdir -p /etc/containerd
 sudo containerd config default | sudo tee /etc/containerd/config.toml
 sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml && \
 grep 'SystemdCgroup' -B 11 /etc/containerd/config.toml
 ​
 # 使用 sed 替换镜像源
 sudo sed -i 's|registry.k8s.io/pause:3.10.1|registry.aliyuncs.com/google_containers/pause:3.10.1|g' /etc/containerd/config.toml
 sudo systemctl daemon-reload
 sudo systemctl restart containerd.service

3.安装runc

首先查看是否存在runc,使用 runc -v,存在则跳过,否则使用下面的下载

https://github.com/opencontainers/runc/releases

复制代码
 sudo chmod +x runc.amd64
 sudo mv runc.amd64 /usr/bin/runc

查看runc版本号

复制代码
 runc -v

4 安装k8s组件

4.1 添加密钥

复制代码
 # 添加 Kubernetes 签名密钥
 sudo curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.34/deb/Release.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/kubernetes-apt-keyring.gpg
 # 添加 Kubernetes 仓库
 sudo echo 'deb [signed-by=/etc/apt/trusted.gpg.d/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.34/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

4.2 安装

复制代码
 # 安装kubeadm、kubectl、kubelet
 sudo apt update
 sudo apt install kubelet=1.34.* kubeadm=1.34.* kubectl=1.34.*
 sudo apt-mark hold kubelet kubeadm kubectl

4.3 初始化集群

主节点才做

普通用户登录

复制代码
 mkidr -p /home/$USER/k8s
 cd /home/$USER/k8s/

设置配置文件

复制代码
 tee kubeadm-config.yaml << EOF
 apiVersion: kubeadm.k8s.io/v1beta4
 kind: InitConfiguration
 localAPIEndpoint:
   advertiseAddress: $(hostname -I | awk '{print $1}')
   bindPort: 6443
 nodeRegistration:
   criSocket: unix:///run/containerd/containerd.sock
 ---
 apiVersion: kubeadm.k8s.io/v1beta4
 kind: ClusterConfiguration
 kubernetesVersion: v1.34.8
 imageRepository: registry.aliyuncs.com/google_containers
 controlPlaneEndpoint: "$(hostname -I | awk '{print $1}'):6443"
 networking:
   podSubnet: "10.244.0.0/16"
   serviceSubnet: "10.96.0.0/12"
 EOF

初始化集群:

复制代码
 sudo kubeadm config images pull --config=kubeadm-config.yaml
复制代码
 sudo kubeadm init --config=kubeadm-config.yaml --upload-certs

5 安装网络插件

复制代码
 mkidr -p /home/$USER/k8s/cni
 cd /home/$USER/k8s/cni
复制代码
 curl https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
复制代码
 kubectl apply -f kube-flannel.yml

6 单节点管理

删除污染节点

首先查看是否存在,存在则删除

复制代码
 kubectl describe node csnt | grep Taints
复制代码
 kubectl taint nodes k8s-master node-role.kubernetes.io/control-plane:NoSchedule-

没有报错就是安装完成了,如果存在,结果如下:

复制代码
 root@csnt:/home/csnt/k8s# kubectl get po -A
 NAMESPACE      NAME                           READY   STATUS    RESTARTS   AGE
 kube-flannel   kube-flannel-ds-xvm2m          1/1     Running   0          16h
 kube-system    coredns-7cc97dffdd-4nt4r       1/1     Running   0          17h
 kube-system    coredns-7cc97dffdd-pm5l9       1/1     Running   0          17h
 kube-system    etcd-csnt                      1/1     Running   0          17h
 kube-system    kube-apiserver-csnt            1/1     Running   0          17h
 kube-system    kube-controller-manager-csnt   1/1     Running   0          17h
 kube-system    kube-proxy-7fwzn               1/1     Running   0          17h
 kube-system    kube-scheduler-csnt            1/1     Running   0          17h

如果存在失败,一般是镜像下载不下来,可以的操作是使用doker pull下来,然后在加载安装,例如:

复制代码
 docker pull nginx:latest
 docker save nginx:latest -o nginx.tar
 sudo ctr -n k8s.io image import nginx.tar

7 多节点管理

需要同样的执行章节1 2 3 4 (4章节排除4.3),5 6 章节也不做

然后获取主节点的加入指令(在主节点执行)

复制代码
 kubeadm token create --print-join-command

然后在从节点执行获取到的指令

相关推荐
姚不倒2 小时前
Go语言实战:构建一个安全的计算器服务(接口、错误处理与Panic恢复)
云原生·golang
大江东去浪淘尽千古风流人物2 小时前
【Polaris-VIO】Docker 镜像跨硬件分发的隐藏陷阱:AVX-512、-march=native 与 CPU 指令集解耦边界
运维·docker·容器·slam·vio·avx-512
AI云原生2 小时前
远程控制软件进入协作阶段:ToDesk、向日葵、AnyDesk、RustDesk怎么选?
运维·服务器·网络·windows·docker·云原生·开源软件
我是谁??2 小时前
【3】基于 Docker + YOLOv8 环境实现模型裁剪(GTX1660S + Ubuntu22.04)
yolo·docker·容器
他们叫我阿冠2 小时前
Docker的基础学习
学习·docker·容器
我是谁??2 小时前
【2】基于 Docker + YOLOv8 环境实现模型蒸馏实战(GTX1660S + Ubuntu22.04)
yolo·docker·容器
风落无尘11 小时前
Stable Diffusion WebUI & ComfyUI 完整安装教程:官方部署+一键整合包+Docker容器化(2026最新)
docker·容器·stable diffusion
CodeMartain15 小时前
Dify Windows 原生部署(无 Docker、纯本地)
运维·docker·容器
牛奶咖啡1316 小时前
k8s容器编排技术实践——使用containerd作为容器运行时部署k8s集群
kubernetes·k8s的安装部署·开启系统的ipvs支持·安装containerd·containerd配置加速器·安装k8s的工具·安装calico网络插件