跨VPC网络-工具安装

选择官方推荐的版本组合,尽量避免一些已被报告的问题,让搭建工作轻松些。

软件/系统
版本
发布日期

Ubuntu

22.04 LTS

2022-04-21

Kubernetes

1.24.4-00

2022-08-18

containerd

1.6.6

2022-06-07

runc

1.1.2

2022-05-12

CNI Plugins

1.1.1

2022-02-24

红帽已决定 2024 年终止 CentOS 项目的更新和发布。受此影响,很多企业和开发者转向 Ubuntu/Debian。此处我们选择最新的 Ubuntu 长期稳定版。

k8s v1.24 起放弃了 docker 作为默认的容器运行时,故我们选择最主流的运行时 containerd。

runc 和 CNI Plugins 是 containerd 的核心组件。

1. 服务器列表

我们用下面三台不同 VPC 网络的服务器来演示搭建k8s集群。

内网ip
外网ip
hostname
区域

172.19.200.6

43.129.25.161

master

香港

172.22.0.10

43.134.80.11

node1

新加坡

172.26.0.9

43.135.160.117

node2

美国

注意私网IP,不要使用同一个网段,防止冲突

2. kubeadm 集群工具安装(版本号1.24)

2.1 节点之中不能有重复的主机名、MAC 地址或 product_uuid。

# 查询MAC地址, 
sudo cat /sys/class/net/eth0/address
sudo cat /sys/class/dmi/id/product_uuid

2.2 允许 iptables 检查桥接流量

2.3 在各个服务器开启必需端口

协议
方向
端口范围
作用

TCP

入站

6443

Kubernetes API server

TCP

入站

2379-2380

etcd server client API

TCP

入站

10250

Kubelet API

TCP

入站

10259

kube-scheduler

TCP

入站

10257

kube-controller-manager

TCP

入站

30000-32767

NodePort Services

UDP

入站

8472

Flannel vxlan

2.4 然后用 netcat 工具检查端口是否启用(以 6443 为例)

修改 hosts 文件

2.5 禁用交换分区

swap这一项全部为 0B,就是禁用状态, 服务器开通时候默认是禁用状态

2.6 安装容器

k8s 支持以下三种容器运行时

容器运行时
Unix 域套接字

containerd

unix:///var/run/containerd/containerd.sock

CRI-O

unix:///var/run/crio/crio.sock

Docker Engine (使用 cri-dockerd)

unix:///var/run/cri-dockerd.sock

此处安装 containerd,推荐官方二进制文件下载安装的方式

2.7 安装 runc

2.8 安装 CNI 插件

2.9 安装 kubeadm、kubelet 和 kubectl

在每台服务器上安装以下的软件包:

  • kubeadm:用来初始化集群的指令

  • kubelet:在集群中的每个节点上用来启动 Pod 和容器等

  • kubectl:用来与集群通信的命令行工具

2.10 配置 cgroup 驱动程序

在部署环节- k8s集群初始化将配置 kubelet cgroup 驱动,所以此处无需配置。

至此,k8s 的集群工具安装完成,

准备进入下一节:部署 ETCD 存储, 最好 etcd 集群是单独的机器

Last updated