2.kubernetes准备# yum install -y yum-utils
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# yum install -y docker-ce-20.10.7-3.el7 docker-ce-cli-20.10.7-3.el7.x86_64 containerd.io-1.4.9-3.1.el7
启动和设置开机自启:
# systemctl start docker && systemctl enable docker
配置docker的cgroup驱动为systemd
# cat > /etc/docker/daemon.json <
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
# systemctl restart docker
3.kubernetes安装:1. 配置服务器主机名
# hostnamectl set-hostname worker01 && bash
2. 配置主机hosts文件
# vim /etc/hosts
添加如下内容:
192.168.123.120 worker01
3. 关闭交换分区swap,提升性能
临时关闭:
# swapoff -a
永久关闭,注释swap挂载:
# sed -i 's/.*swap*./#&/' /etc/fstab
4. 修改内核参数
# modprobe br_netfilter
验证是否成功:
# lsmod | grep br_netfilter
br_netfilter 22256 0
bridge 151336 2 br_netfilter,ebtable_broute# cat > /etc/sysctl.d/k8s.conf <
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
# sysctl -p /etc/sysctl.d/k8s.conf
5. 关闭fIrewalld防火墙
# systemctl stop firewalld && systemctl disable firewalld
6. 关闭selinux
临时关闭:
# setenforce 0
永久关闭:
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
7. 配置yum源
配置epel源:
# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
配置kubernetes源:
# cat > /etc/yum.repos.d/kubernetes.repo <
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
EOF
8. 配置时间同步
# yum install -y ntpdate
#同步网络时间
# ntpdate cn.pool.ntp.org
配置计划任务同步时间
# crontab -e
* */4 * * * /usr/sbin/ntpdate cn.pool.ntp.org# systemctl restart crond
9. 开启ipvs
# cat > /etc/sysconfig/modules/ipvs.modules <
#!/bin/bash
ipvs_modules="ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack"
for kernel_module in ${ipvs_modules}; do
/sbin/modinfo -F filename ${kernel_module} > /dev/null 2>&1
if [ 0 -eq 0 ]; then
/sbin/modprobe ${kernel_module}
fi
done
EOF
# chmod 755 /etc/sysconfig/modules/ipvs.modules
# bash /etc/sysconfig/modules/ipvs.modules
# lsmod | grep ip_vs
ipvs是什么?
ipvs(IP Virtual Server)实现了传输层负载均衡,也就是4层LAN交换,作为linux内核的一部分。ipvs可以将基于TCP和UDP的服务请求转发到真实服务器上,并使真实服务器的服务在单个IP地址上显示为虚拟服务。
ipvs和iptables模式之间有哪些差异:
1.ipvs为大型集群提供了更好的可扩展性和性能
2.ipvs支持比iptables更复杂的复制均衡算法(最小负载、最少连接、加权等)
3.ipvs支持服务器健康检查和连接重试等功能。
1. k8s初始化软件包:
# yum -y install kubelet-1.21.2 kubeadm-1.21.2 kubectl-1.21.2
# systemctl enable kubelet
注:
kubeadm:是一个工具,用来初始化kubernetes集群。
kubelet:安装在集群所以节点上,用于启动pod。
kubectl:通过kubectl可以部署和管理应用,查看各种资源、创建、删除和更新各 种组件。
2. kubeadm初始化k8s集群:
# cat kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.21.2
controlPlaneEndpoint: 192.168.123.120:6443
imageRepository: registry.aliyuncs.com/google_containers
apiServer:
certSANs:
- 192.168.123.120
networking:
podSubnet: 172.16.0.0/16
serviceSubnet: 172.10.0.0/16
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs# kubeadm init --config kubeadm-config.yaml
# mkdir -p $HOME/.kube
# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# chown $(id -u):$(id -g) $HOME/.kube/config
# kubectl get node
NAME STATUS ROLES AGE VERSION
worker01 NotReady control-plane,master 9m4s v1.21.2



