二进制部署kubernetes 1.27
描述
本文档主要用于安装kubernetes 1.27版本,基于rocky linux 8 安装
操作系统和IP规划
操作系统版本:Ubuntu 22.04.2 TLS
IP规划
192.168.0.241 master01.k8s.com
192.168.0.242 master02.k8s.com
192.168.0.243 node01.k8s.com
192.168.0.244 node02.k8s.com
192.168.0.240 vip
Containerd版本: Containerd 1.6.23
kubernets版本: 1.27.4
etcd版本:etcd v3.4.26
集群内部IP规划
10.96.0.0/16 kubernetes集群的Service网段
10.244.0.0/16 kubernetes集群中Pod的网段
10.96.0.10 CoreDns的IP地址
软件下载地址
https://github.com/containerd/containerd/releases/download/v1.6.23/cri-containerd-1.6.23-linux-amd64.tar.gz
https://dl.k8s.io/v1.27.4/kubernetes-server-linux-amd64.tar.gz
https://github.com/etcd-io/etcd/releases/download/v3.4.26/etcd-v3.4.26-linux-amd64.tar.gz
系统配置
配置hosts解析(需要在所有机器操作)
配置主机名称
按照hosts解析在在每台机器配置对应的hostname
解决systemd-resolved占用53端口,这个会导致以后coredns无法正常运行,所以需要禁止监听53端口(所有机器都需要操作)
停止防火墙(需要在所有机器操作)
安装需要的包(需要在所有机器执行)
limits配置(需要在所有机器执行)
内核参数配置(需要在所有机器执行)
加载内核模块(需要在所有机器执行)
加载内核模块写入配置文件(需要在所有机器执行)
内核配置生效(需要在所有机器执行)
关闭swap分区(需要在所有机器执行)
时区设置(需要在所有机器执行)
配置Containerd 内核模块永久加载(需要在所有机器执行)
配置完以上重启所有机器
检查模块是否加载成功(需要在所有机器执行)
安装Containerd
下载并且解压Containerd(需要在所有机器执行),下载可以一次然后使用上传到所有服务器
配置文件生成(需要在所有机器配置)
启动Containerd服务(需要在所有机器配置)
ETCD安装部署
下载并且解压(master01、master02、node01节点操作)
由于etcd需要三个节点所以,分别部署在master01、master02、node01这个三个节点,当然也可以选择单独机器部署etcd集群
etcd创建证书配置文件
生成证书
etcd 集群配置文件生成
配置Services文件(需要在所有etcd节点上配置)
启动etcd服务
测试etcd集群状态
高可用服务安装(Keepalived & Haproxy)
软件安装 (master节点)
Keepalived服务配置(master节点配置)
启动服务 (master01和master02启动)
haproxy服务配置(master节点配置)
安装kubernetes
下载并解压kubernetes(所有机器都需要执行), 下载可以一次然后使用上传到所有服务器
证书生成
kube-controller-manager用户配置文件生成
kube-Scheduler用户配置文件生成
集群管理员配置文件生成
生成用于配置servcieAccount和secret的书证
创建集群所需的目录(所有节点都需要创建)
复制证书和配置到其他master节点
api server 服务配置(master节点操作)
启动 api server服务并加入开机启动(master节点操作)
kube-controller-manager 服务配置(master节点操作)
启动kube-controller-manager服务(master节点操作)
kube-Scheduler服务配置(master节点操作)
启动kube-Scheduler服务
配置admin配置文件
检查当前集群状态
tls bootstrap 用户相关权限配置
tls bootstrap 配置,用于node节点自动颁发证书
kubelet 服务配置(所有节点,包含master节点)
kube-proxy服务配置(所有节点,包含master节点)
复制kube-proxy证书和用户配置文件到其他节点 (所有节点)
kube-proxy配置(所有节点)
master节点打上禁止调度污点,防止pod调度到master节点
网络插件安装
网络插件使用calico,模式使用默认的IPIP (master01节点执行即可)
安装CoreDNS
作为集群内部的dns解析
metrics-server安装
metrics-server主要用集群内部监控项搜集,安装后可以使用kubectl top node等命令查看到cpu内存的资源占用
安装DashBoard
测试Pod