使用 Kubeadm 快速搭建集群
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| 1.1 使用 Kubeadm 快速搭建集群 1.2 集群搭建环境说明 1.3 集群服务器部署组件规划
2.1 服务器静态 IP 地址配置 2.2 服务器主机名配置 2.3 服务器主机 host 文件配置 2.4 服务器 master 节点和 worker 节点免密码登录配置 2.5 服务器关闭交换分区配置 2.6 服务器系统内核参数修改配置 2.7 服务器关闭 Firewalld 防火墙 2.8 服务器关闭 SELinux
3.1 服务器安装配置 Docker 和 Containerd 3.2 服务器安装配置 Kubernetes 和相关组件 3.3 服务器时间同步配置
4.1 服务器安装初始化 Kubernetes 需要的软件包 4.2 服务器 Kubeadm 初始化 Kubernetes 主节点 4.3 服务器 搭建工作节点 4.4 服务器安装网络插件 Calico
5.1 服务器 Kubernetes 集群健康检查
|
1.1 使用 Kubeadm 快速搭建集群
我们可以使用两种方式安装 K8s 的集群
虽然 Kubeadm 的方式搭建集群比较简单,并且还是官方推荐的安装方式,但是:
- 1.Kubeadm 方式安装的集群证书有效期默认为一年
- 2.Kubeadm 方式安装的集群,大部分的组件都是以 容器 的方式运行,比如 kube-apiserver、kube-proxy 等
1.2 集群搭建环境说明
- 操作系统:macOS Catalina 10.15.7
- 虚拟机:VMWare Fusion Pro 11.5.6
- 虚拟机系统: Rocky Linux 9.x x86_64
- Kubernetes版本: v1.29
- 容器运行:使用 Containerd、也会安装 Docker、用于 dockerfile 构建镜像
- Pod网络:用 Calico 替换 Flannel 实现 Pod 互通,支持更大规模的集群
1.3 集群服务器部署组件规划
| K8s 集群角色 |
IP地址 |
说明 |
安装组件 |
| k8s-master |
192.168.10.10 |
master节点 |
apiserver、controller-manager、schedule、kubelet、kube-proxy、kubeadm、containerd calico、etcd |
| k8s-node1 |
192.168.10.11 |
worker节点1 |
kube-proxy、kubelet、kubeadm、containerd、calico、coredns |
| k8s-node2 |
192.168.10.12 |
worker节点2 |
kube-proxy、kubelet、kubeadm、containerd、calico、coredns |
2.1 服务器静态 IP 地址配置
k8s-master 服务器静态 IP 地址配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" # dhcp 改成 static IPADDR="192.168.10.130" # 新加 需要和自己的计算机网段一样 GATEWAY="192.168.10.2" # 新加 网关设置 DNS1="192.168.10.2" # 新加 DSN NETMASK="255.255.255.0" # 新加 子网掩码 DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="9b7e11c7-7f64-40ac-8eae-d3218f021005" DEVICE="ens33" ONBOOT="yes" IPV6_PRIVACY="no"
|
修改网络配置成功之后、重启网络服务使配置生效
2.2 服务器主机名配置
三台服务器安装必备工具
1
| yum install wget jq psmisc vim net-tools telnet yum-utils device-mapper-persistent-data lvm2 git -y
|
修改服务器主机名
1 2 3 4 5 6 7 8
| # master hostnamectl set-hostname k8s-master && bash
# node1 hostnamectl set-hostname k8s-node1 && bash
# node2 hostnamectl set-hostname k8s-node2 && bash
|
2.3 服务器主机 host 文件配置
1 2 3 4 5
| vi /etc/hosts
k8s-master 192.168.10.130 k8s-node1 192.168.10.131 k8s-node2 192.168.10.132
|
2.4 服务器 master 节点和 worker 节点免密码登录配置
1 2 3 4
| ssh-keygen # 一直回车就好
# 生成的公钥文件路径 ls ~/.ssh/id_rsa.pub
|
把本地生成的公钥文件复制到远程主机
1 2 3
| ssh-copy-id k8s-master ssh-copy-id k8s-node1 ssh-copy-id k8s-node2
|