k8s集群部署
一、KO方式安装k8s
Ko主机系统配置
关闭swap
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
防火墙关闭
systemctl stop firewalld && systemctl disable firewalld
SELinux关闭
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
k8s主机配置
关闭swap
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
防火墙关闭
systemctl stop firewalld && systemctl disable firewalld
SELinux关闭
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
时区
timedatectl set-timezone Asia/Shanghai
ko安装
解压安装包
tar zxvf KubeOperator-release-v3.16.4-amd64.tar.gz
arm64 的包名是 KubeOperator-release-v3.16.4-arm64.tar.gz
cd KubeOperator-release-v3.16.4
运行安装脚本等待安装脚本执行完成后,查看 KubeOperator 状态
/bin/bash install.sh
koctl status
登录和k8s集群安装
地址: http://<ko服务器_ip>:80
用户名: admin
密码: kubeoperator@admin123

二、kubeadm方式安装k8s
所有节点执行
vi /etc/hosts
例子
192.168.26.11 vms11.rhce.cc vms11
192.168.26.12 vms12.rhce.cc vms12
192.168.26.13 vms13.rhce.cc vms13
配置防火墙和关闭selinux
firewall-cmd --get-default-zone
getenforce
关闭swap ,注释掉/etc/fstab的swap
swapon -s
swapoff -a
sed -i '/swap/s/UUID/#UUID/g' /etc/fstab
配置yum源
rm -rf /etc/yum.repos.d/* ; wget -P /etc/yum.repos.d/ ftp://ftp.rhce.cc/k8s/*
开机自动加载和当前加载
cat > /etc/modules-load.d/containerd.conf <<EOF
modprobe overlay
modprobe br_netfilter
关机后参数生效和当前生效
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
上传并安装软件包
例子:yum install containerd_rpm/* k8s_1.24_rpm/* -y
(在线安装:yum install containerd.io cri-tools -y)
安装接口和配置crictl
crictl config runtime-endpoint unix:///var/run/containerd/containerd.sock
vi /etc/containerd/config.toml
wget ftp://ftp.rhce.cc/cka/config.toml
yes | cp config.toml /etc/containerd/
自启动和重启
systemctl enable containerd; systemctl restart containerd
上传和安装包
tar zxf nerdctl-0.21.0-linux-amd64.tar.gz -C /usr/bin/
mkdir -p /opt/cni/bin/
tar zxf cni-plugins-linux-amd64-v1.1.1.tgz -C /opt/cni/bin/
mkdir /etc/nerdctl/
cat > /etc/nerdctl/nerdctl.toml <<EOF
debug = false
debug_full = false
address = "unix:///var/run/containerd/containerd.sock"
namespace = "k8s.io"
cgroup_manager = "systemd"
hosts_dir = ["/etc/containerd/certs.d"]
insecure_registry = false
EOF
配置加速器
mkdir -p /etc/containerd/certs.d/docker.io
cat > /etc/containerd/certs.d/docker.io/hosts.toml <https://docker.io" [host."https://frz7i079.mirror.aliyuncs.com"] capabilities = ["pull","resolve"] override_path = true EOF
查看版本和安装
yum list --showduplicates kubeadm --disableexcludes=kubernetes
yum install -y kubelet-1.24.2-0 kubeadm-1.24.2-0 kubectl-1.24.2-0 --disableexcludes=kubernetes
开机自启
systemctl restart kubelet ; systemctl enable kubelet
安装网络插件calico
wget https://docs.projectcalico.org/manifests/calico.yaml
取消网段name value前面的注释#,并且修改网段保持和kubeadm init里的一致
导入镜像
nerdctl load -i calico/calico-3.19-img.tar
安装
kubectl apply -f calico/calico.yaml
验证
kubectl get nodes 查看STATUS
master节点执行
1:安装kubeadm
kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.24.2 --pod-network-cidr=10.244.0.0/16
2:复制弹出来的代码到master
3:复制加入集群代码到work节点
4:kubectl get nodes验证集群
master添加tab键
vi /etc/profile
添加 source <(kubectl completion bash)
source /etc/profile
安装负载监控
1:下载安装包和yaml
2:导入镜像
nerdctl load -i metric-img-v0.6.1.tar
3:启动容器(只在master)
kubectl apply -f components.yaml
4:验证
kubectl top nodes
三、升级集群
升级master
1:查看当前版本
kubectl get nodes (kubectl version --short)
2:确定yun源里的kubeadm可用版本
yum list --showduplicates kubeadm
升级kubeadm
1:升级kubeadm到指定版本
yum install -y kubeadm-1.25.0-0 --disableexcludes=kubernetes
2:验证kubeadm
kubeadm version
3:查看集群是否需要升级
kubeadm upgrade plan
4:把master设置为维护模式
kubectl drain vms11.rhce.cc --ignore-daemonsets
升级k8s集群里master各组件组件
1:升级k8s集群
kubeadm upgrade apply v1.25.0 (--etcd-upgrade=false 不升级etcd)
2:取消master维护模式
kubectl uncordon vms12.rhce.cc
kubectl get nodes
升级master的kubelet和kubectl
1:安装kubelet和kubectl
yum install -y kubelet-1.25.0-0 kubectl-1.25.0-0 --disableexcludes=kubernete
systemctl daemon-reload ; systemctl restart kubelet
2:验证版本
kubectl version --short(或者用kubectl get nodes)
其他master节点升级:第二台升级和第一台master不同点,kubeadm upgrade apply v1.25.0 换成 kubeadm upgrade node
work升级
1:升级work的kubeadm
yum install -y kubeadm-1.25.0-0 --disableexcludes=kubernetes
2:master设置维护模式
kubectl drain vms12.rhce.cc --ignore-daemonsets
3:master查看集群状态
kubectl get nodes
4:更新work的k8s集群组件
kubeadm upgrade node
5:更新kubelet和kubectl
yum install -y kubelet-1.25.0-0 kubectl-1.25.0-0 --disableexcludes=kubernete
systemctl daemon-reload ; systemctl restart kubelet
6:取消work维护模式
kubectl uncordon vms12.rhce.cc
kubectl get nodes
可能遇到的问题--重装节点
1:驱逐节点
kubectl drain vms13.rhce.cc --delete-local-data --force --ignore-daemonsets
2:清除节点
kubectl delete node vms13.rhce.cc
3:验证
kubectl get nodes
4:获取加入集群命令
kubeadm token create --print-join-command
5:重置
kubeadm reset
6:执行加入集群命令
master删除掉需要重装calico

浙公网安备 33010602011771号