1.主机规划 一主二从
master 192.168.171.182 centos7.9
node1 192.168.171.183 centos7.9
node2 192.168.171.184 centos7.9
192.168.171.182 master 192.168.171.183 node1 192.168.171.184 node2
3.时间同步
vim /etc/chrony.conf 修改server ntp1.aliyun.com iburst
systemctl start chronyd
systemctl start chronyd
date
4.禁用iptables和firewalld服务
systemctl stop firewalld
systemctl disable firewalld
firewall-cmd --state
5.禁用selinux
编辑 /etc/selinux/config 文件
sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config setenforce 0
-
禁用swap分区
/dev/mapper/centos-swap swap swap defaults 0 0
7.升级操作系统内核
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum -y install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
yum --enablerepo="elrepo-kernel" -y install kernel-ml.x86_64
grub2-set-default 0
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
uname -r
8.修改linux的内核参数
加载网桥过滤模块
modprobe br_netfilter
编辑/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
查看网桥过滤模块是否加载成功9)配置ipvs功能
lsmod | grep br_netfilter
9.配置ipvs功能
kubernetes 使用ipvs的代理模型
yum install ipset ipvsadm -y
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
添加执行权限
chmod +x /etc/sysconfig/modules/ipvs.modules
执行
/bin/bash /etc/sysconfig/modules/ipvs.modules
查看
lsmod | grep -e ip_vs -e nf_conntrack_ipv4
基础环境准备
vim /etc/yum.repos.d/kubernetes.repo
[kubernetes] name=Kubernetes baseurl=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
yum clean all && yum makecache
安装kubeadm、kubelet和kubectl
yum install kubeadm kubelet kubectl -y
kubeadm version
为了实现docker使用的cgroupdriver与kubelet使用的cgroup的一致性
vim
/etc/sysconfig/kubelet KUBELET_EXTRA_ARGS="--cgroup-driver=systemd" KUBE_PROXY_MODE="ipvs"
设置kubelet开机自启
systemctl enable kubelet
10.安装containerd
从这里开始只在master上做
安装工具
yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
安装软件包
yum install containerd -y
初始化默认配置
containerd config default | tee /etc/containerd/config.toml
修改containerd配置更改cgroup
sed -i "s#SystemdCgroup\ \=\ false#SystemdCgroup\ \=\ true#g" /etc/containerd/config.toml
配置crictl
tee /etc/crictl.yaml runtime-endpoint: unix:///run/containerd/containerd.sock image-endpoint: unix:///run/containerd/containerd.sock timeout: 10 debug: false
systemctl daemon-reload systemctl restart containerd systemctl enable containerd
验证
crictl pull nginx:alpine crictl rmi nginx:alpine crictl images
初始化 Master 节点
生成配置文件
kubeadm config print init-defaults > kubeadm.yml
修改配置:
advertiseAddress:为控制切面地址,( Master 主机 IP )
criSocket:为 containerd 的 socket 文件地址
imageRepository:阿里云镜像代理地址,否则拉取镜像会失败
kubernetesVersion:为 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
把粉色开头的命令执行
添加 Worker 节点
kubeadm join 172.16.90.111:6443 --token 加上上面初始化完成的
安装 flannel
wget http://down.i4t.com/k8s1.24/kube-flannel.yml
修改网卡
--iface=ens33 # 如果是多网卡的话,指定内网网卡的名称
应用
kubectl apply -f kube-flannel.yml