网易首页 > 网易号 > 正文 申请入驻

如何用 Kubeadm 在 Debian 11 上安装 Kubernetes 集群 | Linux 中国

0
分享至

导读:你是否在寻找一份在 Debian 11(Bullseye)上安装 Kubernetes 集群的简易指南?

本文字数:5979,阅读时长大约: 7分钟

你是否在寻找一份在 Debian 11(Bullseye)上安装 Kubernetes 集群的简易指南?

这份分步指南将向你展示如何使用 Kubeadm 工具在 Debian 11 上安装 Kubernetes 集群。

Kubernetes(k8s)集群包含主控节点和工作节点,用于运行容器化的应用程序。主控节点作为控制平面,工作节点为实际工作负载提供环境。

前置条件:

◈ 已安装 Debian 11

◈ 2 CPU / vCPU

◈ 2 GB RAM

◈ 20 GB 空闲硬盘空间

◈ 有管理员权限的 sudo 用户

◈ 稳定的网络连接

实验环境配置:

在本文中,我使用了 3 个 Debian 11 系统的节点,配置如下

◈ 主控节点(k8s-master) – 192.168.1.236

◈ 工作节点 1(k8s-worker1) – 192.168.1.237

◈ 工作节点 2(k8s-worker2) – 192.168.1.238

事不宜迟,我们直接进入安装步骤。

1、设置主机名和更新 /etc/hosts 文件

在主控节点和工作节点上使用hostnamectl命令来设置主机名:

  1. $ sudo hostnamectl set-hostname "k8s-master" // 在主控节点运行

  2. $ sudo hostnamectl set-hostname "k8s-worker1" // 在工作节点 1 运行

  3. $ sudo hostnamectl set-hostname "k8s-worker2" // 在工作节点 2 运行

在所有节点的/etc/hosts文件末尾添加下面几行内容:

  1. 192.168.1.236 k8s-master

  2. 192.168.1.237 k8s-worker1

  3. 192.168.1.238 k8s-worker2

2、在所有节点上关闭交换分区

我推荐关闭交换分区,以便更丝滑地使用kubelet。在所有节点上执行以下命令来关闭交换分区:

  1. $ sudo swapoff -a

  2. $ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

3、配置 Kubernetes 集群相关的防火墙规则

如果你的操作系统防火墙是打开的,请分别在主控节点和工作节点允许以下的端口。

在主控节点,执行:

  1. $ sudo ufw allow 6443/tcp

  2. $ sudo ufw allow 2379/tcp

  3. $ sudo ufw allow 2380/tcp

  4. $ sudo ufw allow 10250/tcp

  5. $ sudo ufw allow 10251/tcp

  6. $ sudo ufw allow 10252/tcp

  7. $ sudo ufw allow 10255/tcp

  8. $ sudo ufw reload

在工作节点,执行:

  1. $ sudo ufw allow 10250/tcp

  2. $ sudo ufw allow 30000:32767/tcp

  3. $ sudo ufw reload

注意:如果你的 Debian 11 系统防火墙是关闭的,可以跳过此步骤。

4、在所有节点安装 Containerd 运行时

Containerd 是容器运行时的行业标准,所有节点必须安装 Containerd。

先在所有节点上配置如下的核心参数,再安装 Containerd。

  1. $ cat <

  2. overlay

  3. br_netfilter

  4. EOF

  5. $ sudo modprobe overlay

  6. $ sudo modprobe br_netfilter

  7. $ cat <

  8. net.bridge.bridge-nf-call-iptables = 1

  9. net.ipv4.ip_forward = 1

  10. net.bridge.bridge-nf-call-ip6tables = 1

  11. EOF

运行如下命令,以使上面的更改生效:

  1. $ sudo sysctl --system

现在,在所有节点上运行如下apt命令来安装 Conatinerd。

  1. $ sudo apt update

  2. $ sudo apt -y install containerd

在所有节点上运行如下命令来配置 Containerd:

  1. $ containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1

在所有节点上设置cgroupdriversystemd,编辑/etc/containerd/config.toml文件,找到[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]部分,添加一行内容:SystemdCgroup = true

  1. $ sudo vi /etc/containerd/config.toml

systemdCgroup-true-containerd-config-toml

保存并退出文件。

在所有节点上重启并启用containerd服务:

  1. $ sudo systemctl restart containerd

  2. $ sudo systemctl enable containerd

5、添加 Kubernetes Apt 库

执行以下命令,添加 Kubernetes Apt 库:

  1. $ sudo apt install gnupg gnupg2 curl software-properties-common -y

  2. $ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/cgoogle.gpg

  3. $ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

6、在所有节点上安装 kubelet、kubectl 和 kubeadm

在所有节点上执行以下apt命令,安装 Kubernetes 集群组件,如kubeletkubectl以及kubeadm

  1. $ sudo apt update

  2. $ sudo apt install kubelet kubeadm kubectl -y

  3. $ sudo apt-mark hold kubelet kubeadm kubectl

7、使用 Kubeadm 创建 Kubernetes 集群

现在我们可以创建 Kubernetes 集群了,在主控节点上执行以下命令:

  1. $ sudo kubeadm init --control-plane-endpoint=k8s-master

命令输出:

Kubernetes-Control-Plane-Initialization-Debian11

出现以上内容,说明控制平面初始化成功。在输出中,有普通用户与集群交互的命令,也有把任何工作节点加入到集群的命令。

要开始与集群进行交互,请在主控节点上运行以下命令:

  1. $ mkdir -p $HOME/.kube

  2. $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

  3. $ sudo chown $(id -u):$(id -g) $HOME/.kube/config

执行以下kubectl命令来获取节点和集群的信息:

  1. $ kubectl get nodes

  2. $ kubectl cluster-info

以上命令的输出:

Nodes-Cluster-Info-Kubectl

通过执行kubeadm join命令来把两个工作节点加入到集群。

注意:请从kubeadm init命令的输出中复制完整的命令。在我的例子中,命令如下:

  1. $ sudo kubeadm join k8s-master:6443 --token ta622t.enl212euq7z87mgj \

  2. --discovery-token-ca-cert-hash sha256:2be58f54458d0e788c96b8841f811069019161f9a3dd8502a38c773e5c6ead17

在工作节点 1 上的输出如下:

Worker-Node1-Join-Kunernetes-Cluster

在工作节点 2 上的输出如下:

Worker-Node2-Join-Kubernetes-Cluster

在主控节点上执行以下命令,检查节点的状态:

  1. $ kubectl get nodes

  2. NAME STATUS ROLES AGE VERSION

  3. k8s-master NotReady control-plane 23m v1.25.0

  4. k8s-worker1 NotReady 9m27s v1.25.0

  5. k8s-worker2 NotReady 2m19s v1.25.0

  6. $

为了使节点状态变为ready,我们需要安装容器荚(Pod)网络插件,如 Calico 或 flannel。

8、安装 Calico Pod 网络插件

在主控节点上执行以下命令安装 Calico:

  1. $ kubectl apply -f https://projectcalico.docs.tigera.io/manifests/calico.yaml

输出:

Install-calico-pod-network-addon-debian11

在所有节点上执行以下命令,配置防火墙允许 Calico 的端口:

  1. $ sudo ufw allow 179/tcp

  2. $ sudo ufw allow 4789/udp

  3. $ sudo ufw allow 51820/udp

  4. $ sudo ufw allow 51821/udp

  5. $ sudo ufw allow 4789/udp

  6. $ sudo ufw reload

执行以下命令检查下 Calico 的状态:

  1. $ kubectl get pods -n kube-system

Calico-Pods-Status-Kuberenetes-Debian11

完美!现在再检查下节点状态:

Nodes-status-after-calico-Installation

非常棒!上面的输出说明主控节点和工作节点的状态都是ready。现在这个集群可以正常工作了。

9、检查 Kubernetes 集群安装是否正确

我们尝试通过deployment命令来部署基于 Nginx 的应用程序,来验证 Kubernetes 集群的安装是否正确。执行以下命令:

  1. $ kubectl create deployment nginx-app --image=nginx --replicas 2

  2. $ kubectl expose deployment nginx-app --name=nginx-web-svc --type NodePort --port 80 --target-port 80

  3. $ kubectl describe svc nginx-web-svc

以上命令的输出:

Nginx-Based-App-Kubernetes-Cluster-Debian11

使用以下的curl命令通过节点端口 30036 来访问基于 nginx 的应用程序。

注意:在curl命令中,可以使用两个工作节点任一的主机名。

  1. $ curl http://k8s-worker1:30036

Access-Nginx-Based-App-via-NodePort-Kubernetes-Debian11

以上的输出说明我们可以正常访问基于 nginx 的应用程序了。

以上为全部内容。希望本文对你有用,参照本文可以在 Debian 11 上正常安装 Kubernetes 集群。如有任何问题,请在下面评论区告诉我。

via:

作者: 选题: 译者: 校对:

本文由 原创编译, 荣誉推出

LCTT 译者 :Xiaobin.Liu

翻译: 47.0 篇

贡献: 1092 天

2019-11-30

2022-11-25

https://linux.cn/lctt/lxbwolf

欢迎遵照 CC-BY-SA 协议规定转载,

如需转载,请在文章下留言 “ 转载:公众号名称”,

我们将为您添加白名单,授权“ 转载文章时可以修改”。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
3.8万警力深夜突击!江西公安“地毯式”清查1.4万场所,场面曝光

3.8万警力深夜突击!江西公安“地毯式”清查1.4万场所,场面曝光

生活魔术专家
2026-06-28 15:22:28
高速百吨王组团冲卡后续,画面曝光,女子当众放狠话威胁执法人员

高速百吨王组团冲卡后续,画面曝光,女子当众放狠话威胁执法人员

西楼知趣杂谈
2026-06-29 05:08:08
已婚女子和男上司在办公室暧昧,17分钟小视频传出,如今怎样了

已婚女子和男上司在办公室暧昧,17分钟小视频传出,如今怎样了

丫头舫
2026-06-26 11:29:17
日本媒体:板仓滉已回归日本队合练,有望赶上对阵巴西比赛

日本媒体:板仓滉已回归日本队合练,有望赶上对阵巴西比赛

懂球帝
2026-06-29 05:02:35
世界杯两大亿元水货!德国双星集体梦游!皇马传奇戳破遮羞布

世界杯两大亿元水货!德国双星集体梦游!皇马传奇戳破遮羞布

澜归序
2026-06-28 07:35:54
两杯毒酒:俄乌战争四年多,为何连个“台阶”都没得下了

两杯毒酒:俄乌战争四年多,为何连个“台阶”都没得下了

民间马后炮
2026-06-23 07:50:20
别再关注韩红了,冯小刚的《抓特务》,问题超乎你的想象!

别再关注韩红了,冯小刚的《抓特务》,问题超乎你的想象!

青橘罐头
2026-06-27 09:29:46
过期一天就绝对不能碰的10种危险食物,第一名你可能经常舍不得扔

过期一天就绝对不能碰的10种危险食物,第一名你可能经常舍不得扔

娱乐的硬糖吖
2026-06-24 17:00:21
原来他俩已离婚,如今一个在日本孤独终老,一个在上海娶将军之女

原来他俩已离婚,如今一个在日本孤独终老,一个在上海娶将军之女

胡一舸南游y
2026-06-28 23:00:49
《浪姐7》收官:4人名利双收,3人翻红,2人升咖,1人遗憾

《浪姐7》收官:4人名利双收,3人翻红,2人升咖,1人遗憾

原梦叁生
2026-06-29 03:36:13
日本养老体系彻底崩塌,给中国提个醒:最先倒下的,恐怕不是老人

日本养老体系彻底崩塌,给中国提个醒:最先倒下的,恐怕不是老人

慕名而来只为你
2026-06-17 22:25:10
美国FCC扩大中国禁令!

美国FCC扩大中国禁令!

EETOP半导体社区
2026-06-28 12:39:01
内塔尼亚胡:从海洋到约旦河之间,已不存在“两国”空间

内塔尼亚胡:从海洋到约旦河之间,已不存在“两国”空间

澎湃新闻
2026-06-28 11:56:47
我被调到水库无人问津,三年后,贬我的女书记以领导身份来视察

我被调到水库无人问津,三年后,贬我的女书记以领导身份来视察

千秋文化
2026-06-24 19:37:39
大范围炎热将来新疆局部50度,双台风酝酿其中一个或来华南

大范围炎热将来新疆局部50度,双台风酝酿其中一个或来华南

中国气象爱好者
2026-06-28 23:41:48
詹姆斯若离队 7大下家快船尼克斯在列

詹姆斯若离队 7大下家快船尼克斯在列

日常碎碎念啊
2026-06-29 01:07:00
高文禄已任长春市宽城区委书记

高文禄已任长春市宽城区委书记

吉刻新闻
2026-06-28 14:58:28
吴月娘:我这浪肉,被男人摸一下真好

吴月娘:我这浪肉,被男人摸一下真好

老达子
2026-06-26 06:50:03
大罗:巴西不再出顶级中锋?时代已经不同;巴西能拿第6颗星

大罗:巴西不再出顶级中锋?时代已经不同;巴西能拿第6颗星

懂球帝
2026-06-29 02:14:12
CBA:曝山东高速重点拿下王岚嵚,三方太难,贺希宁彻底泡汤!

CBA:曝山东高速重点拿下王岚嵚,三方太难,贺希宁彻底泡汤!

体坛侃排球
2026-06-29 00:40:07
2026-06-29 05:43:00
Linux
Linux
Linux 中国开源社区
8018文章数 73112关注度
往期回顾 全部

科技要闻

DeepSeek最新论文:如何让大模型跑得更快

头条要闻

加拿大1-0南非首进16强 欧斯塔基奥92分钟贴地斩绝杀

头条要闻

加拿大1-0南非首进16强 欧斯塔基奥92分钟贴地斩绝杀

体育要闻

两周飞5万公里!因凡蒂诺遭环保人士猛批

娱乐要闻

曾沛慈拿下《乘风2026》年度总冠军

财经要闻

省钱,我只服梁文锋

汽车要闻

搭载华为乾崑六件套 东风奕派M8预售19.98万起

态度原创

本地
数码
亲子
房产
公开课

本地新闻

世界杯球迷节:比球赛更好玩的派对

数码要闻

古尔曼:预计苹果今年发布搭载M5 Ultra芯片的Mac Studio

亲子要闻

夏季室内空调温度应该怎么定? 儿科医生说,谁最怕热就听谁的

房产要闻

全国高考大放水,300分就能上本科!论上岸率,海南没输过!

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版