Debian12安装K8S

Docker环境

添加Docker国内源配置

添加阿里云docker源

vim /etc/apt/sources.list

deb http://mirrors.aliyun.com/docker-ce/linux/debian stretch stable

apt update -y

apt update -y 出现证书错误请安装对应证书

安装最新版本docker
apt-get install docker-ce docker-ce-cli containerd.io -y
安装指定版本docker
apt-cache madison docker-ce

docker-ce | 5:19.03.153-0debian-stretch | http://mirrors.aliyun.com/docker-ce/linux/debian stretch/stable amd64 Packages
docker-ce | 5:19.03.143-0debian-stretch | http://mirrors.aliyun.com/docker-ce/linux/debian stretch/stable amd64 Packages
docker-ce | 5:19.03.133-0debian-stretch | http://mirrors.aliyun.com/docker-ce/linux/debian stretch/stable amd64 Packages
docker-ce | 5:19.03.123-0debian-stretch | http://mirrors.aliyun.com/docker-ce/linux/debian stretch/stable amd64 Packages
docker-ce | 5:19.03.113-0debian-stretch | http://mirrors.aliyun.com/docker-ce/linux/debian stretch/stable amd64 Packages
docker-ce | 5:19.03.103-0debian-stretch | http://mirrors.aliyun.com/docker-ce/linux/debian stretch/stable amd64 Packages
docker-ce | 5:19.03.93-0debian-stretch | http://mirrors.aliyun.com/docker-ce/linux/debian stretch/stable amd64 Packages
docker-ce | 5:19.03.83-0debian-stretch | http://mirrors.aliyun.com/docker-ce/linux/debian stretch/stable amd64 Packages
docker-ce | 5:19.03.73-0debian-stretch | http://mirrors.aliyun.com/docker-ce/linux/debian stretch/stable amd64 Packages
docker-ce | 5:19.03.63-0debian-stretch | http://mirrors.aliyun.com/docker-ce/linux/debian stretch/stable amd64 Packages

使用第二列中的版本字符串安装特定版本,例如5:19.03.153-0debian-stretch

apt-get install docker-ce=5:19.03.15~3-0~debian-stretch docker-ce-cli=5:19.03.15~3-0~debian-stretch containerd.io -y
Docker 镜像加速

国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:

  • 科大镜像:https://docker.mirrors.ustc.edu.cn/
  • 网易:https://hub-mirror.c.163.com/
  • 阿里云:https://<你的ID>.mirror.aliyuncs.com
  • 七牛云:https://reg-mirror.qiniu.com

当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务。

阿里云镜像获取地址:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台,登陆后,左侧菜单选中镜像加速器就可以看到你的专属地址

配置七牛云镜像仓库
vim /etc/docker/daemon.json
{

 "registry-mirrors": ["https://reg-mirror.qiniu.com"],

 "exec-opts": ["native.cgroupdriver=systemd"]

}

native.cgroupdriver=systemd 后续使用K8S提前配置不使用k8s可以不配置

重新启动服务

systemctl daemon-reload
systemctl restart docker

检查加速器是否生效

docker info

Registry Mirrors:
https://reg-mirror.qiniu.com/

K8S环境

主机名 地址 备注
k8s-master 10.0.20.7 主节点
k8s-node1 10.0.20.3
前置环境配置
  • 每台主机配置host

    vim /etc/hosts
    

    添加配置

    10.0.20.3 k8s-node1
    10.0.20.7 k8s-master
    
  • 关闭各节点的防火墙

    systemctl disable nftables.service && systemctl stop nftables.service && systemctl status nftables.service
    
  • 永久禁用各节点的交换分区

    swapoff -a && sed -i 's/.*swap.*/#&/' /etc/fstab # 注释掉swap那一行
    
  • 同步各节点的时区

    timedatectl set-timezone Asia/Shanghai # 设置系统时区为中国/上海
    
K8S源配置

kubeadm 不能帮你安装或者管理 kubelet 或 kubectl, 所以你需要确保它们与通过 kubeadm 安装的控制平面的版本相匹配。 如果不这样做,则存在发生版本偏差的风险,可能会导致一些预料之外的错误和问题。 然而,控制平面与 kubelet 之间可以存在一个次要版本的偏差,但 kubelet 的版本不可以超过 API 服务器的版本

  • 更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包

    apt-get update -y
    apt-get install -y apt-transport-https ca-certificates curl -y
    
  • 下载 Google Cloud 公开签名秘钥

    # sudo curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
    # 将证书下载到/usr/share/keyrings/kubernetes-archive-keyring.gpg
    sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg
    
  • 添加 Kubernetes apt 仓库

    echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
    
  • 更新 apt 包索引,安装 kubelet、kubeadm 和 kubectl,并锁定其版本

    sudo apt-get upgrade -y && sudo apt-get update -y
    
安装K8S
  • K8S 1.20版本以前,CRI内部维护了DockerShim,CR使用的是Docker, CRI与CR进行交互时是通过DockerShim桥接来实现的

  • K8S 1.20版本以后,CRI内部取消的DockerShim(市场上大部分CR都遵循了K8S的CRI规范,KS8为了适应更多的CR而放弃了Docker,如果还想使用Docker则需要外部单独安装cri-dockerd),CR使用的是Containerd

    使用docker容器建议使用K8S版本1.20以前版本,1.20版本后需要搭配cri-dockerd才能使用

安装最新版本
apt-get install -y kubelet kubeadm kubectl 
# sudo apt-get remove kubelet kubeadm kubectl # 卸载
查看可用版本
apt-cache madison kubeadm
# 安装1.19.1-00 版本
apt-get install -y kubelet=1.19.1-00 kubeadm=1.19.1-00  kubectl=1.19.1-00 
锁定版本
sudo apt-mark hold kubelet kubeadm kubectl # 锁定版本,标记软件包不被自动更新

添加 kubelet 开机自启

sudo systemctl enable kubelet # 添加 kubelet 开机自启
sudo systemctl restart kubelet && sudo systemctl status kubelet # 重启并查看状态
初始化master节点
# kubernetes-version #制定 kubernetes 版本
# image-repository  #选择用于拉取镜像的容器仓库
# apiserver-advertise-address #当前 Master 主机的ip地址
# service-cidr #为服务的虚拟 IP 地址段,默认值:"10.96.0.0/12"
# pod-network-cidr #指明 pod 网络可以使用的 IP 地址段。如果设置了这个参数,控制平面将会为每一个节点自动分配 CIDR
   kubeadm init \
    --kubernetes-version v1.19.1 \
    --image-repository registry.aliyuncs.com/google_containers \
    --apiserver-advertise-address 10.0.20.7 \
    --service-cidr 10.245.0.0/12 \
    --pod-network-cidr 10.244.0.0/16 

安装成功提示
Your Kubernetes control-plane has initialized successfully!

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 10.0.20.7:6443 --token z6f8b5.eg77ay382qnkmhu3 \
    --discovery-token-ca-cert-hash sha256:748d1140b11748a015a4fbb3629b99050e1eb4749b1af12e23c0e348ece1dc9a
  • Master节点执行

     mkdir -p $HOME/.kube
     sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
     sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
  • 所有Node节点执行(加入Node节点到Master节点)

    kubeadm join 10.0.20.7:6443 --token z6f8b5.eg77ay382qnkmhu3 \
        --discovery-token-ca-cert-hash sha256:748d1140b11748a015a4fbb3629b99050e1eb4749b1af12e23c0e348ece1dc9a
    

其他关联配置

修改主机名
hostnamectl set-hostname master

重新连接SSH主机名生效

Vim 无法粘贴
vim /usr/share/vim/vim90/defaults.vim

大约84行位置 set mouse=a 改为 set mouse-=a

查看Debain发行版本
lsb_release -a

Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm

常见错误处理

更新源证书错误 NO_PUBKEY B53DC80D13EDEF05

Err:6 https://mirrors.tuna.tsinghua.edu.cn/kubernetes/apt kubernetes-xenial InRelease

The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY B53DC80D13EDEF05

  • 安装证书需要依赖

    apt-get install apt-transport-https ca-certificate curl gnupg2 software-properties-common -y
    
  • 获取公钥: 你需要获取缺失的公钥。在这个例子中,公钥是 B53DC80D13EDEF05。你可以使用以下命令获取公钥:

    gpg --recv-keys --keyserver keyserver.ubuntu.com B53DC80D13EDEF05
    

    如果你在防火墙或代理的后面,可能需要配置一下 GPG 来使用代理:

    gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys B53DC80D13EDEF05
    
  • 将公钥添加到系统: 下载公钥后,将其添加到 APT 的密钥环中:

    gpg --export --armor B53DC80D13EDEF05 | sudo apt-key add -
    

    或者,如果你使用的是较新的 Ubuntu | Debian 版本,可以使用以下命令:

    gpg --export --armor B53DC80D13EDEF05 | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg
    
  • 更新 APT: 更新 APT 包列表,以确保你的系统可以识别并使用新添加的密钥:

    sudo apt-get update
    
  • 重新尝试安装: 现在,你应该能够重新尝试安装 Kubernetes 包:

    sudo apt-get install -y kubelet kubeadm kubectl
    

相关推荐

  1. Debian12安装K8S

    2024-06-06 17:34:02       28 阅读
  2. Debian安装k8s记录

    2024-06-06 17:34:02       55 阅读
  3. 基于 debian 12 利用 kubeadm 部署 k8s 1.29 版本

    2024-06-06 17:34:02       30 阅读
  4. k8s 安装

    2024-06-06 17:34:02       35 阅读
  5. 安装k8s

    2024-06-06 17:34:02       33 阅读
  6. TOP10-k8s-安全措施

    2024-06-06 17:34:02       33 阅读
  7. k8s安装hostPath方式存储的PostgreSQL15

    2024-06-06 17:34:02       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 17:34:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 17:34:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 17:34:02       82 阅读
  4. Python语言-面向对象

    2024-06-06 17:34:02       91 阅读

热门阅读

  1. Linux 环境搭建与常用命令指南

    2024-06-06 17:34:02       29 阅读
  2. [docker] docker-compose-redis.yml

    2024-06-06 17:34:02       32 阅读
  3. 风控场景下文本分类-实战

    2024-06-06 17:34:02       34 阅读
  4. 一键安装docker脚本

    2024-06-06 17:34:02       29 阅读
  5. Milvus向量数据库:开启向量搜索新纪元

    2024-06-06 17:34:02       34 阅读
  6. VsCode个人插件

    2024-06-06 17:34:02       34 阅读
  7. 关于质因数求最小公倍数

    2024-06-06 17:34:02       29 阅读
  8. ThinkPHP(FastAdmin)快递100订阅快递信息

    2024-06-06 17:34:02       32 阅读
  9. wordpress主题建站的步骤和流程

    2024-06-06 17:34:02       30 阅读