k8s基础环境部署
6.配置ipvs功能:在kubernetes中service有两种代理模型,一种是基于iptables的,一种是基于ipvs的两者比较的话,ipvs的性能明显要高一些,但是如果要使用它,需要手动载入ipvs模块。9.配置kubelet的cgroup:为了实现docker使用的cgroupdriver与kubelet使用cgroup的一致性,建议使用以下文件内容。4>.关闭三个节点的防火墙并且禁用s
1. 环境规划:
主机名 | 主机地址 | 内核数量 |
master | 192.168.188.113 | 2核 |
slave1 | 192.168.188.114 | 2核 |
slave2 | 192.168.188.115 | 2核 |
以下所有节点都在进行配置。
2. 初始配置:
1>. 修改主机名。
2>. 配置三个节点的hosts解析。
3>. 配置三个节点的时间同步。
4>. 关闭三个节点的防火墙并且禁用selinux。
3. 禁用swap分区:swap分区据的是虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间虚拟成内存来使用启用swap设备会对系统的性能产生非常负面的影响,因此kubernetes要求每个节点都要禁用swap设备但是如果因为某些原因确实不能关闭swap分区,就需要在集群安装过程中通过明确的参数进行配置说明:
[root@master ~]# vim /etc/fstab
## 将文件中该行注释掉
#/dev/mapper/centos-swap swap swap defaults 0 0
4. 升级操作系统内核:
## 导入elrepo gpg key
[root@master ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
## 安装elrepo yum仓库
[root@master ~]# yum -y install https://www.elrepo.org/elrepo-release-7.0-
4.el7.elrepo.noarch.rpm
## 安装install kernel-ml,ml为长期稳定版本,lt为长期维护版本
[root@master ~]# yum --enablerepo="elrepo-kernel" -y install kernel-ml.x86_64
## 设置grub2默认引导为0
[root@master ~]# grub2-set-default 0
## 重新生成grub2引导文件
[root@master ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
## 更新后需要重启,是升级的内核生效
[root@master ~]# reboot
## 重新查看内核
[root@master ~]# uname -r
6.0.0-1.el7.elrepo.x86_64
5. 修改linux的内核参数:
## 修改linux内核参数,添加网桥过滤和地址转发功能
[root@master ~]# vim /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
## 修改bridge-nf-call-iptables文件
[root@master ~]# echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
## 查看网桥过滤模块是否加载成功
[root@master ~]# lsmod | grep br_netfilter
br_netfilter 28672 0
6. 配置ipvs功能:在kubernetes中service有两种代理模型,一种是基于iptables的,一种是基于ipvs的两者比较的话,ipvs的性能明显要高一些,但是如果要使用它,需要手动载入ipvs模块。
## 安装ipset和ipvsadm
[root@master ~]# yum install ipset ipvsadm -y
## 添加需要加载的模块写入脚本文件
[root@master ~]# vim /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
## 为脚本添加执行权限
[root@master ~]# chmod +x /etc/sysconfig/modules/ipvs.modules
## 执行脚本文件
[root@master ~]# sh /etc/sysconfig/modules/ipvs.modules
## 查看对应的模块是否加载成功:
[root@master ~]# lsmod | grep -e ip_vs -e nf_conntrack_ipv4
ip_vs_sh 16384 0
ip_vs_wrr 16384 0
ip_vs_rr 16384 0
ip_vs 163840 6 ip_vs_rr,ip_vs_sh,ip_vs_wrr
nf_conntrack 159744 5 xt_conntrack,nf_nat,xt_nat,xt_MASQUERADE,ip_vs
nf_defrag_ipv6 24576 2 nf_conntrack,ip_vs
libcrc32c 16384 5 nf_conntrack,nf_nat,nf_tables,xfs,ip_vs
7. 由于k8s的镜像源在国外,速度比较慢,因此这里切换成国内源:
[root@master ~]# vim /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
[root@master ~]# yum clean all && yum makecache
8. 集群软件安装:
## 查看所有可用版本
[root@master ~]# yum list kubeadm kubelet kubectl --showduplicates | sort -r
[root@master ~]# yum install kubelet-1.24.2 kubeadm-1.24.2 kubectl-1.24.2
## 查看k8s版本
[root@master ~]# 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"}
9. 配置kubelet的cgroup:为了实现docker使用的cgroupdriver与kubelet使用cgroup的一致性,建议使用以下文件内容。
[root@master ~]# vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"
10. 设置kubelet开机自启:
[root@master ~]# systemctl enable kubelet.service
11. 创建快照,保存配置。
更多推荐
所有评论(0)