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

posted @ 2025-11-22 23:36  小蓝莓  阅读(5)  评论(0)    收藏  举报