k8s-1.23.5集群离线安装
-
安装准备:
1.1 环境准备
OS: Linux CentOS 7.8.2003(Centos7必须>=7.5)
Kubernetes:Kubernetes v1.23.5
Computer:(需要3台)
Master k8s-master 192.168.6.100
Node1 k8s-node1 192.168. 6.101
Node2 k8s-node2 192.168. 6.102
所有安装包放在 /usr/local/package 下,如未特殊说明,3台机器都要安装。
资料可以在我传上来的资源下载,如果后期需要的人多,我再写个自动化安装脚本。Kubernetesv1.23.5全离线资源安装包-数据集文档类资源-CSDN文库
1.2 镜像准备:
kube-apiserver-v1.23.5.tar
kube-controller-manager-v1.23.5.tar
kube-proxy-v1.23.5.tar
kube-scheduler-v1.23.5.tar
pause-3.6.tar
coredns-v1.8.6.tar
etcd-3.5.1-0.tar
1.3 安装包准备
Docker
containerd.io-1.3.7-3.1.el7.x86_64.rpm
container-selinux-2.107-3.el7.noarch.rpm
docker-ce-19.03.9-3.el7.x86_64.rpm
docker-ce-cli-19.03.9-3.el7.x86_64.rpm
Kubeadm
conntrack-tools-1.4.4-7.el7.x86_64.rpm
cri-tools-1.23.0-0.x86_64.rpm
kubeadm-1.23.5-0.x86_64.rpm
kubectl-1.23.5-0.x86_64.rpm
kubelet-1.23.5-0.x86_64.rpm
kubernetes-cni-0.8.7-0.x86_64.rpm
libnetfilter_cthelper-1.0.0-11.el7.x86_64.rpm
libnetfilter_cttimeout-1.0.0-7.el7.x86_64.rpm
libnetfilter_queue-1.0.2-2.el7_2.x86_64.rpm
socat-1.7.3.2-2.el7.x86_64.rpm
Kubectl
kubectl-1.23.5-0.x86_64.rpm
Kubelet
kubelet-1.23.5-0.x86_64.rpm
kubernetes-cni-0.8.7-0.x86_64.rpm
libnetfilter_cttimeout-1.0.0-7.el7.x86_64.rpm
libnetfilter_cthelper-1.0.0-11.el7.x86_64.rpm
conntrack-tools-1.4.4-7.el7.x86_64.rpm
socat-1.7.3.2-2.el7.x86_64.rpm
libnetfilter_queue-1.0.2-2.el7_2.x86_64.rpm
准备完毕会有以下5个文件夹,整套资源可以在这里下载,Kubernetesv1.23.5全离线资源安装包-数据集文档类资源-CSDN文库
分别是docker安装包文件夹,镜像文件夹,kubeadm,ctl,let安装包文件夹
2. 安装DOCKER&LOAD镜像
2.1 安装docker
cd /usr/local/package/docker-ce
rpm -ivh *.rpm
2.2 启动docker
systemctl start docker
2.3 验证安装
2.4 更新配置
打开/etc/docker/daemon.json文件,没有就新建
加入如下内容
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
2.5 重启docker
systemctl daemon-reload
systemctl restart docker
2.6 加载镜像
通过load-i方式加载所有8个镜像
docker load -i kube-apiserver-v1.23.5.tar
docker load -i kube-controller-manager-v1.23.5.tar
docker load -i kube-scheduler-v1.23.5.tar
docker load -i kube-proxy-v1.23.5.tar
docker load -i pause-3.6.tar
docker load -i etcd-3.5.1-0.tar
docker load -i coredns-v1.8.6.tar
3. 预先配置
3.1 配置Host
vim /etc/hosts
192.168.6.100 k8s-master
192.168.6.101 k8s-node1
192.168.6.102 k8s-node2
3.2 关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
3.3 关闭setlinux
vim /etc/selinux/config
SELINUX=enforcing改为SELINUX=disabled
3.4 关闭swap
关闭swap
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
检查关闭状态
free -g
Swap对应都为0时代表已关闭
3.5 内核网桥调整
配置系统内核参数使流过网桥的流量也进入iptables/netfilter框架中
vim /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
验证
sysctl –system
3.6 添加默认路由
ip route add default via 192.168.6.*(这里*指代各机器ip)
3.7 节点互信
ssh-keygen
ssh-copy-id k8s-node1
ssh-copy-id k8s-node2
3.8 Linux转包设置
临时修改(不推荐)
echo "1" > /proc/sys/net/ipv4/ip_forward
永久修改
vim /etc/rc.d/rc.local
增加此行echo "1" > /proc/sys/net/ipv4/ip_forward
重启网络服务
service network restart
3.9 Linux桥接设置
临时修改(不推荐)
echo "1" > /proc/sys/net/bridge/bridge-nf-call-iptables
永久修改
vim /etc/rc.d/rc.local
增加此行echo "1" > /proc/sys/net/bridge/bridge-nf-call-iptables
重启网络服务
service network restart
3.10 打开iptables转发
Kubernetes采用了iptables的过滤规则,即使iptables已禁用也会执行过滤规则
iptables -P FORWARD ACCEPT
设置启动执行
vim /etc/rc.local 新增:iptables -P FORWARD ACCEPT
DOCKER配置
vim /etc/systemd/system/docker.service
新增ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT
重启docker服务
service docker restart
4. 安装kubelet
切到包路径下,直接安装
/usr/local/package/kubelet
rpm -ivh *.rpm
开启服务
systemctl enable kubelet.service
启动服务
systemctl start kubelet.service
5. 安装kubectl
切到包路径下,直接安装
/usr/local/package/kubectl
rpm -ivh kubectl-1.23.5-0.x86_64.rpm
6. 安装kubeadm
切到包路径下,
/usr/local/package/kubeadm
先安装cri-tools
rpm -ivh cri-tools-1.23.0-0.x86_64.rpm
再安装kubeadm
rpm -ivh kubeadm-1.23.5-0.x86_64.rpm
7. 准备启动
7.1 初始化
使用以下命令在master节点初始化
kubeadm init --apiserver-advertise-address=192.168.6.100 --kubernetes-version=v1.23.5 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=all --v=6
如果没问题,就会提示这个
看到这个说明初始化成功了,将join命令保存好,在node服务器执行
7.2 执行命令
将上面的命令在服务器执行一下
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
8. Node节点安装
Node节点和上面方式一样安装,只需要安装到第5步就行了,不需要安装kubeadm。然后执行join命令加入集群。