Kubernetes安装部署
准备三台虚拟机 master node1 node2
系统CentOS7.9 内存4G 处理器2 硬盘50G
配置hosts解析
192.168.163.150 master
192.168.163.152 node1
192.168.163.153 node2
禁用swap分区
vim /etc/fstab 注释掉swap一行
升级操作系统内核
[root@master ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@master ~]# yum -y install https://www.elrepo.org/elrepo-release-7.0- 4.el7.elrepo.noarch.rpm
[root@master ~]# yum --enablerepo="elrepo-kernel" -y install kernel-ml.x86_64
[root@master ~]# grub2-set-default 0
[root@master ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
[root@master ~]# reboot
# 重启后,需要验证内核是否为更新对应的版本
[root@master ~]# uname -r
5.18.10-1.el7.elrepo.x86_64
# 修改linux的内核参数,添加网桥过滤和地址转发功能
# 编辑/etc/sysctl.d/kubernetes.conf文件,添加如下配置:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness=0
# 重新加载配置
[root@master ~]# sysctl -p /etc/sysctl.d/kubernetes.conf
# 加载网桥过滤模块
[root@master ~]# modprobe br_netfilter
# 查看网桥过滤模块是否加载成功
[root@master ~]# lsmod | grep br_netfilter
配置ipvs功能
# 1 安装ipset和ipvsadm
[root@master ~]# yum install ipset ipvsadm -y
# 2 添加需要加载的模块写入脚本文件
[root@master ~]# cat < /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF
# 3 为脚本文件添加执行权限
[root@master ~]# chmod +x /etc/sysconfig/modules/ipvs.modules
# 4 执行脚本文件
[root@master ~]# /bin/bash /etc/sysconfig/modules/ipvs.modules
# 5 查看对应的模块是否加载成功
[root@master ~]# lsmod | grep -e ip_vs -e nf_conntrack_ipv4
k8s基本环境准备
$ cat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
$ yum clean all && yum makecache
安装最新版本
[root@master sysctl.d]# yum install kubelet-1.24.2 kubeadm-1.24.2 kubectl-1.24.2
[root@master sysctl.d]# kubeadm version //验证
kubeadm version: &version.Info{Major:"1", Minor:"24", GitVersion:"v1.24.2", GitCommit:"f66044f4361b9f1f96f0053dd46cb7dce5e990a8", GitTreeState:"clean", BuildDate:"2022-06-15T14:20:54Z", GoVersion:"go1.18.3", Compiler:"gc", Platform:"linux/amd64"}
# 配置kubelet的cgroup
# 为了实现docker使用的cgroupdriver与kubelet使用的cgroup的一致性,建议修改如下文件内容。
$ cat < /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"
EOF
# 设置kubelet开机自启
# systemctl enable kubelet
直接安装docker-ce源
# step 1: 安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4:查询软件包
yum list | grep containerd
containerd.io.x86_64 1.6.6-3.1.el7 docker-ce-stable
# Step 5:安装软件包
[root@node1 ~]# yum install containerd -y
# Step 6:初始化默认配置
containerd config default | tee /etc/containerd/config.toml
# Step 7:修改containerd配置更改cgroup
sed -i "s#SystemdCgroup\ \=\ false#SystemdCgroup\ \=\ true#g" /etc/containerd/config.toml
# Step 8:修改镜像源
sed -i "s#k8s.gcr.io#registry.aliyuncs.com/google_containers#g" /etc/containerd/config.toml
# Step 9:配置crictl
cat <
以下操作只在master上进行
初始化 Master 节点
生成配置文件
# 生成配置文件
$ kubeadm config print init-defaults > kubeadm.yml
初始化 K8S 集群
# 查看所需镜像列表
$ kubeadm config images list --config kubeadm.yml
# 拉取镜像
$ kubeadm config images pull --config kubeadm.yml
# 根据配置文件启动 kubeadm 初始化 k8s
$ kubeadm init --config=kubeadm.yml --upload-certs --v=6
运行集群
在master上运行:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
在其他两台上运行:
[root@node1 sysctl.d]# kubeadm join 192.168.163.150:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:1672af57b0d393bff7593c743506179532b77ea712542c09644b93fa12c5f948
查看
[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master NotReady control-plane 7m42s v1.24.2
node1 Ready 3m34s v1.24.2
node2 Ready 3m22s v1.24.2
安装配置网络插件
wget http://down.i4t.com/k8s1.24/kube-flannel.yml
[root@master ~]# kubectl apply -f kube-flannel.yml
都ready后成功