文章基于CentOS 7.8系统使用Containerdr作为容器运行时通过kubeadm指导搭建k8s单机master集群,使用calico作为k8s集群的网络插件。K8S官方在1.24版本彻底弃用docker。
需要服务器可以联网。
环境
节点说明
主机名 | IP地址 | 操作系统 |
c_master01.lvan | 192.168.100.200 | CentOS Linux release 7.8 |
c_node01.lvan | 192.168.100.201 | CentOS Linux release 7.8 |
c_node02.lvan | 192.168.100.202 | CentOS Linux release 7.8 |
软件环境
软件名 | 软件版本 | 作用 |
CentOS Linux release | 7.8 | 操作系统 |
containerd.io | 1.6.14-3.1 | 容器运行时 |
cri-tools | 1.25.0-0 | containerd客户端 |
nerdctl | 1.1.0 | containerd客户端 |
cni-plugins | v1.1.1 | cni插件 |
metrics-server | v0.6.2 | k8s集群性能监控插件 |
kubectl | 1.26.0-0 | k8s控制工具 |
kubeadm | 1.26.0-0 | k8s服务端 |
kubelet | 1.26.0-0 | k8s客户端 |
calico | v3.24.5 | K8S网络插件 |
pause | 3.7 | 编车容器 |
表 1 软件环境
ip地址规划
ip地址 | 作用 |
192.168.100.200 | k8s主节点 |
192.168.100.201 | k8s子节点1 |
192.168.100.202 | k8s子节点2 |
10.244.0.0/16 | Pod网段地址 |
表 2 ip地址规划
步骤预览
- 操作系统配置:配置IP地址、配置主机名、关闭防火墙、关闭selinux、关闭swap、修改/etc/hosts文件、配置yum源
- 安装配置docker
- 修改系统内核参数
- 安装kubelet软件
- 初始化K8S集群
- 子节点加入k8s集群
- 安装网络插件
- 安装metrics-server监控集群性能数据
操作过程
一、操作系统配置
该章节的所有操作所有节点上均要执行。
设置主机名
按照规划文件中的名称依次设置每个节点的主机名。
# hostnamectl set-hostname 规划的主机名
IP地址配置
按照规划文件中的IP地址依次配置每个节点的IP地址。
# systemctl stop NetworkManager;systemctl disabled NetworkManager;systemctl mask NetworkManager # cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-修改为你的网卡名 TYPE=Ethernet BOOTPROTO=none NAME=修改为你的网卡名 DEVICE=修改为你的网卡名 ONBOOT=yes IPADDR=修改为你需要设置的ip地址 NETMASK=255.255.255.0 GATEWAY=修改为你需要设置的ip地址网关 DNS1=修改为你需要设置的ip地址DNS EOF # systemctl restart network # ip a
关闭selinux
在/etc/selinux/config中设置SELINUX=为disabled
# sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config # setenforce 0
关闭swap
在/etc/fstab文件中删除swap的挂载信息行,系统中执行swaoff -a临时关闭swap。
# swapoff -a # sed -i '/swap/d' /etc/fstab
关闭防火墙
关闭防火墙,并设置防火墙为开机不启动
# systemctl stop firewalld;systemctl disable firewalld;systemctl mask firewalld
# systemctl status firewalld
设置/etc/hosts文件
在/etc/hosts文件中添加所有节点的信息。
# cat >> /etc/hosts <<EOF 192.168.100.200 cmaster01.lvan master01 192.168.100.201 cnode01.lvan node01 192.168.100.202 cnode02.lvan node02 EOF
配置yum源
备份当前的yun配置文件,并创建新的yum源文件。
# mkdir -p /etc/yum.repos.d/bak/ # mv /etc/yum.repos.d/CentOS* /etc/yum.repos.d/bak/ # 在/etc/yum.repos.d/目录中创建k8s.repo、epel.repo、docker.repo、CentOS-Base.repo 四个repo源文件,具体内容如下所示。 # yum clean all # yum repolist
k8s.repo
[kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
epel.repo
[epel] name=Extra Packages for Enterprise Linux 7 – $basearch baseurl=http://mirrors.aliyun.com/epel/7/$basearch #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
docker.repo
[docker-ce-stable] name=Docker CE Stable – $basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/