如何在 Rocky Linux 9/AlmaLinux 9 上安装 Kubernetes
Rocky Linux 9/AlmaLinux 9 Linux 发行版自 2022 年 7 月起向公众开放。它们的支持期限将持续到 2032 年 5 月 31 日(10 年支持寿命),使其成为运行 Kubernetes 集群的理想平台。在本文中,我们分享在 Rocky Linux 9/AlmaLinux 9 系统上设置 3 节点 kubernetes 集群时应遵循的步骤。
- 1 控制平面 kubernetes 节点
- 2 Kubernetes工作节点
我的服务器设置如下所示。
Server IP | Server Hostname | Role |
37.27.37.63 | k8smaster.mylab.io | Master Node (Control Plane) |
37.27.6.95 | k8snode01.mylab.io | Worker Node 01 |
135.181.195.155 | k8snode02.mylab.io | Worker Node 02 |
本指南中使用的基础架构由 Hetzner Cloud 提供支持。
$ hcloud server list
ID NAME STATUS IPV4 IPV6 PRIVATE NET DATACENTER
41815406 k8snode01.mylab.io running 37.27.6.95 2a01:4f9:c011:bf23::/64 - hel1-dc2
41815407 k8snode02.mylab.io running 135.181.195.155 2a01:4f9:c011:b7d7::/64 - hel1-dc2
41815408 k8smaster.mylab.io running 37.27.37.63 2a01:4f9:c012:c08a::/64 - hel1-dc2
此设置是使用 Ansible Playbook 半自动化的,它将运行一系列任务来配置诸如以下内容:
- 更新系统并安装依赖包
- 禁用swap(安装kubernetes集群时必须关闭)
- 设置时区并配置NTP时间同步
- 加载所需的内核模块并配置其他 sysctl 配置
- 在每个节点上配置/etc/hosts文件
- 安装和配置容器运行时; Containerd、CRI-O 或 Docker 与 Mirantis cri-dockerd
- 配置firewalld(如果已激活)
1. 准备您的工作站机器
工作站是执行 ansible 命令的地方。这也可以是集群节点之一。
在计算机上安装基本的 CLI 工具。
### Ubuntu / Debian ###
sudo apt update
sudo apt install git wget curl vim bash-completion tmux
### CentOS / RHEL / Fedora / Rocky Linux ###
sudo yum -y install git wget curl vim bash-completion tmux
接下来我们安装 ansible(如果尚未安装)。
### Python3 ###
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --user
python3 -m pip install ansible --user
### Python2 ###
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py --user
python -m pip install ansible --user
安装后检查 Ansible 版本:
$ ansible --version
ansible [core 2.15.8]
config file = None
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /root/.local/lib/python3.9/site-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /root/.local/bin/ansible
python version = 3.9.18 (main, Sep 7 2023, 00:00:00) [GCC 11.4.1 20230605 (Red Hat 11.4.1-2)] (/usr/bin/python3)
jinja version = 3.1.3
libyaml = True
更新工作站计算机中的 /etc/hosts
文件:
$ sudo vim /etc/hosts
37.27.37.63 k8smaster.mylab.io k8smaster
37.27.6.95 k8snode01.mylab.io k8snode01
135.181.195.155 k8snode02.mylab.io k8snode02
生成 SSH 密钥:
$ ssh-keygen -t rsa -b 4096 -N ''
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:wAufyZb3Zn/aEjo2Ds9/wnJrTTM2L3LsTlvtFXMiZcw [email
The key's randomart image is:
+---[RSA 4096]----+
|OOo |
|B**. |
|EBBo. . |
|===+ . . |
|=*+++ . S |
|*=++.o . . |
|=.o. .. . . |
| o. . . |
| . |
+----[SHA256]-----+
使用以下参数创建 SSH 客户端配置文件。
$ vim ~/.ssh/config
Host *
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
IdentitiesOnly yes
ConnectTimeout 0
ServerAliveInterval 30
将 SSH 密钥复制到所有 Kubernetes 集群节点
ssh-copy-id username@ServerIP #Loop for all nodes.
# Example
ssh-copy-id root@k8smaster
ssh-copy-id root@k8snode01
ssh-copy-id root@k8snode02
2. 在所有节点上设置正确的主机名
登录集群中的每个节点并配置正确的主机名:
# Examples
# Master Node 01
sudo hostnamectl set-hostname k8smaster.mylab.io
# Worker Node 01
sudo hostnamectl set-hostname k8snode01.mylab.io
注销然后重新登录以确认主机名设置正确:
$ hostnamectl
Static hostname: k8smaster.mylab.io
Icon name: computer-vm
Chassis: vm 更新于:5个月前
赞一波!2
相关文章
- 【说站】linux 如何退出python
- 【说站】Java如何在PDF添加注释
- 【说站】java软引用如何在浏览器使用
- CentOS7部署发布.NET Core网站Ngnix安装配置图文教程
- dev/hda5在linux中表示什么
- linux高并发是什么意思
- linux为什么没有病毒
- linux nobody是啥用户
- Kubernetes(k8s) Linux安装和配置
- 如何在 JavaScript 中使用正则表达式删除 HTML 标签?
- linux 命令之查看文件内容
- linux 命令之 ls 命令详解
- Linux下RabbitMQ安装和.NET Core使用RabbitMQ.Client操作
- linux shell的几种截取字符串的方法
- Linux中date命令如何格式化输出需要的时间格式
- 使用Docker Wine Qemu KVM在Linux运行Windows应用
- Debian Linux国内常用镜像源
- CentOS7安装unzip解压工具命令使用方法
- Linux使用Docker部署.NET6网站图文教程
- Linux中通过命令连接指定WiFi
文章评论
评论问答