qidao123.com ToB IT社区-企服评测·应用市场

 找回密码
 立即注册

centos搭建k8s 1.28集群

[复制链接]
发表于 4 天前 | 显示全部楼层 |阅读模式
实行情况

体系主机网卡centos7.9.2009k_masterens33 192.168.50.20centos7.9.2009k_nodeens33 192.168.50.21都是最小化安装的
根本情况准备(全部节点都须要设置的)

设置yum源

由于centos7 的yum源早就制止维护了,我们利用阿里云上面yum源
  1. curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  2. yum clean all
  3. yum makecache
  4. # 安装一些基础命令
  5. yum -y install bash-completion vim net-tools bridge-utils wget
  6. # 刷新一下终端
  7. bash
复制代码
修改主机名和ssh免密
  1. hostnamectl set-hostname k_master
  2. hostnamectl set-hostname k_node
  3. bash
复制代码
  1. # 配置域名解析和ssh免密,方便传输文件
  2. [root@k_master ~]# cat /etc/hosts
  3. 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
  4. ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  5. 192.168.50.20 k_master
  6. 192.168.50.21 k_node
  7. ssh-keygen
  8. ssh-copy-id root@k_master
  9. ssh-copy-id root@k_node
复制代码
设置ntp
  1. yum -y install chrony
  2. systemctl enable chronyd --now
  3. chronyc sources
  4. date
复制代码
禁用防火墙和selinux
  1. systemctl disable firewalld.service --now
  2. setenforce 0
  3. vim /etc/selinux/config
  4. # 修改为
  5. SELINUX=disabled
  6. # 重启
  7. reboot
复制代码
禁用swap分区

k8s是要求克制利用swap分区的,会对体系的性能产生负面的影响的
我这里的话,在创建假造机的时间,就没有创建交换分区,以是不须要利用
  1. [root@k_node ~]# cat /etc/fstab
  2. #
  3. # /etc/fstab
  4. # Created by anaconda on Fri May  8 09:56:12 2026
  5. #
  6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
  7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
  8. #
  9. /dev/mapper/centos-root /                       xfs     defaults        0 0
  10. UUID=7cdc3393-4ec5-490d-a7c3-7fda6123940d /boot                   xfs     defaults        0 0
复制代码
修改linux内核参数
  1. # 加载br_netfilter内核模块
  2. modprobe br_netfilter
  3. # 永久生效,开启会自动加载这个模块
  4. echo "br_netfilter" > /etc/modules-load.d/br_netfilter.conf
  5. # 验证模块是否安装成功
  6. lsmod |  grep br_netfilter
  7. # 添加内核参数
  8. cat > /etc/sysctl.d/k8s.conf << EOF
  9. net.bridge.bridge-nf-call-ip6tables = 1
  10. net.bridge.bridge-nf-call-iptables = 1
  11. net.ipv4.ip_forward = 1
  12. EOF
  13. sysctl -p /etc/sysctl.d/k8s.conf
  14. # 会输出一些信息的
复制代码
安装k8s

设置k8s源
  1. yum -y install ipset ipvsadm
  2. cat > /etc/sysconfig/modules/ipvs.modules << EOF
  3. modprobe -- ip_vs
  4. modprobe -- ip_vs_rr
  5. modprobe -- ip_vs_wrr
  6. modprobe -- ip_vs_sh
  7. modprobe -- nf_conntrack_ipv4
  8. EOF
  9. # 添加权限,这样开机回自动加载
  10. chmod +x ipvs.modules
  11. bash ipvs.modules
  12. # 查看加载是否成功了
  13. lsmod | grep  -e ip_vs -e nf_conntrack_ipv4
复制代码
实行初始化
  1. wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
  2. yum -y install docker-ce
  3. systemctl enable docker --now
  4. # 安装docker的时候,默认会安装containerd
  5. # 生成containerd配置文件
  6. containerd config default > /etc/containerd/config.toml
  7. # 编辑这个文件config.toml
  8. #设置拉取的镜像
  9. sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"
  10. #设置system cgroup驱动
  11. SystemdCgroup = true
  12. # 修改镜像拉取策略,配置镜像加速器
  13.       [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
  14.         [plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"]
  15.            endpoint = ["https://registry-k8s-io.mirrors.sjtug.sjtu.edu.cn"]
  16.         [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
  17.            endpoint = ["自己的镜像仓库地址"]
  18. # 当拉取registry.k8s.io 下的镜像的时候,去上海交大的镜像站下载,而不是去国外下载镜像
  19. # 当拉取docker.io 镜像的时候,去国内网站下载
  20. systemctl enable containerd --now
  21. [root@k_master containerd]# systemctl restart containerd
  22. # 查看containerd版本
  23. [root@k_master containerd]# containerd -v
  24. containerd containerd.io 1.6.33 d2d58213f83a351ca8f528a95fbd145f5654e957
复制代码
  1. cat > /etc/yum.repos.d/k8s.repo << EOF
  2. [kubernetes]
  3. name=kubernetes
  4. baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
  5. enabled=1
  6. gpgcheck=0
  7. repo_gpgcheck=0
  8. gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
  9.        http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
  10. EOF
复制代码
将node节点添加到k8s集群
这个参加k8s集群是偶尔间限定的,24小时逾期,可以手动天生kubeadm token create --print-join-command
  1. # 安装1.28版本
  2. yum -y install kubelet-1.28.0 kubectl-1.28.0 kubeadm-1.28.0
  3. # 设置开启自启,等会安装k8s集群的时候,会自动的启动的
  4. systemctl enable kubelet
  5. # 安装后就会有这个crictl命令了,这个就是用来连接哪一个容器运行时的
复制代码
检察节点状态
  1. # 这个是老版本的写法
  2. crictl config runtime-endpoint unix:///var/run/containerd/containerd.sock
  3. crictl config image-endpoint unix:///var/run/containerd/containerd.sock
复制代码
安装网络插件(calico,只须要在kmaster节点上利用)

安装版本为3.26
https://archive-os-3-26.netlify.app/calico/3.26/about/
  1. # 新版本的写法
  2. cat > /etc/crictl.yaml << EOF
  3. runtime-endpoint: unix:///var/run/containerd/containerd.sock
  4. image-endpoint: unix:///var/run/containerd/containerd.sock
  5. timeout: 10
  6. debug: false
  7. EOF
  8. # 配置好后可以通过下面的命令输出一些信息,会有报错的,因为还没有安装k8s网络插件
  9. crictl info
  10. systemctl restart containerd
复制代码
k8s集群测试
  1. kubeadm config print init-defaults > kubeadm.yaml
  2. [root@k_master ~]# cat kubeadm.yaml
  3. apiVersion: kubeadm.k8s.io/v1beta3
  4. bootstrapTokens:
  5. - groups:
  6.   - system:bootstrappers:kubeadm:default-node-token
  7.   token: abcdef.0123456789abcdef
  8.   ttl: 24h0m0s
  9.   usages:
  10.   - signing
  11.   - authentication
  12. kind: InitConfiguration
  13. localAPIEndpoint:
  14.   advertiseAddress: 192.168.50.20  # master 地址
  15.   bindPort: 6443
  16. nodeRegistration:
  17.   criSocket: unix:///var/run/containerd/containerd.sock  # 容器运行时接口
  18.   imagePullPolicy: IfNotPresent
  19.   name: k_master  # 主机名区分
  20.   taints: null
  21. ---
  22. apiServer:
  23.   timeoutForControlPlane: 4m0s
  24. apiVersion: kubeadm.k8s.io/v1beta3
  25. certificatesDir: /etc/kubernetes/pki
  26. clusterName: kubernetes
  27. controllerManager: {}
  28. dns: {}
  29. etcd:
  30.   local:
  31.     dataDir: /var/lib/etcd
  32. imageRepository: registry.aliyuncs.com/google_containers  # 初始化时设置镜像仓库地址
  33. kind: ClusterConfiguration
  34. kubernetesVersion: 1.28.0
  35. networking:
  36.   dnsDomain: cluster.local
  37.   serviceSubnet: 10.96.0.0/12
  38.   podSubnet: 10.244.0.0/16  # pod网段
  39. scheduler: {}
  40. ---
  41. apiVersion: kubeproxy.config.k8s.io/v1alpha1
  42. kind: KubeProxyConfiguration   
  43. mode: ipvs   # 设置ipvs模式
  44. ---
  45. apiVersion: kubelet.config.k8s.io/v1beta1
  46. kind: KubeletConfiguration
  47. cgroupDriver: systemd  # 设置kubelet驱动为systemd
复制代码
创建一个busybox的pod,看能不能访问外网
  1. kubeadm init --config=kubeadm.yaml
  2. # 输出信息
  3. Your Kubernetes control-plane has initialized successfully!
  4. To start using your cluster, you need to run the following as a regular user:
  5.   mkdir -p $HOME/.kube
  6.   sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  7.   sudo chown $(id -u):$(id -g) $HOME/.kube/config
  8. Alternatively, if you are the root user, you can run:
  9.   export KUBECONFIG=/etc/kubernetes/admin.conf
  10. You should now deploy a pod network to the cluster.
  11. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  12.   https://kubernetes.io/docs/concepts/cluster-administration/addons/
  13. Then you can join any number of worker nodes by running the following on each as root:
  14. kubeadm join 192.168.50.20:6443 --token abcdef.0123456789abcdef \
  15.         --discovery-token-ca-cert-hash sha256:bd17a10cb11b2a54cdec94844bc0f58375d1448ce8f7275720c2584f4d725d91
复制代码
k8s安装其他组件

安装metrics-server组件

可以监控监控pod,node利用cpu,内存的情况
  1. # 根据上面的信息,我们创建目录,这个目录就是k8s管理员文件,可以操作k8s集群的文件
  2. mkdir -p $HOME/.kube
  3. sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  4. sudo chown $(id -u):$(id -g) $HOME/.kube/config
复制代码
安装nfs驱动,主动创建pv

nfs动态创建pv
安装dashboard

安装dashboard
安装helm

安装helm
增补


  • 下令补全
[code]echo "source

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录

QQ|手机版|qidao123.com IT社区;IT企服评测▪应用市场 ( 浙ICP备20004199|浙ICP备20004199号 )|网站地图

GMT+8, 2026-5-21 23:00 , Processed in 0.075110 second(s), 32 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表