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

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

相关推荐
阿里云云原生16 小时前
研发视角的新突破:当 AI Coding 工具集成全域运维诊断,排查线上故障只需 3 分钟
云原生
小猿姐1 天前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
阿里云云原生2 天前
AgentTeams 和 Claude Tag 都进入群聊模式,是新范式还是新叙事?
云原生·agent
阿里云云原生3 天前
Higress v2.2.3 发布:正式入驻 CNCF Sandbox,AI Gateway 与 Ingress 迁移能力双向加固
云原生
lichenyang4533 天前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang4533 天前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器
lichenyang4533 天前
Docker 学习笔记(二):docker run 的参数到底在控制什么?
docker·容器
阿里云云原生4 天前
香港站【企业 AI Agent 工程化实战专场】来啦,邀您7月9日见!
云原生·agent
阿里云云原生4 天前
研发域与运维域的“数字握手”:通过 Agentic Skills 实现 DevOps 全链路自动化
云原生
运维开发故事6 天前
基于 Arthas 的多集群在线诊断系统设计与实现
kubernetes