当前位置: 首页 > article >正文

K8s集群的环境部署

1.测试环境所需要的主机名和IP和扮演的角色

harbor 172.25.254.200 harbor仓库

k8s-master 172.25.254.100 k8s集群控制节点

k8s-node1 172.25.254.10 k8s集群工作节点

k8s-node2 172.25.254.20 k8集群工作节点

注意:所有节点禁用selinux和防火墙

所有节点同步时间和地址解析

所有节点安装docker

所有节点禁用swap 注意注释掉/etc/fstab文件中的定义

为什么禁用swap?

内存速度远快于 Swap,使用 Swap 会导致性能下降,影响节点和应用响应速度。

Kubernetes 依赖 kubelet 管理节点资源,而 kubelet 默认无法有效处理 Swap,可能导致资源分配错误。

Swap 可能延迟内存压力的响应,导致节点或 Pod 进入不稳定状态。

关闭所有节点的火墙和禁用iptables

1.master 和node harbor禁用swap

swapon -s#查看磁盘名

Filename                Type        Size        Used        Priority
/dev/dm-1                               partition    2097148        0        -2

]# systemctl mask swap.target

]# swapoff -a

]# vim /etc/fstab

#/dev/mapper/rhel-swap swap swap defaults 0 0

/dev/cdrom /media iso9660 defaults 0 0

2.master和node harbor都做本地解析

[root@k8s-master ~]# vim /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

172.25.254.100 k8s-master.timinglee.org

172.25.254.10 k8s-node1.timinglee.org

172.25.254.20 k8s-node2.timinglee.org

172.25.254.254 reg.timinglee.org

3.master和node harbor都安装docker

[root@k8s-master ~]# vim /etc/yum.repos.d/docker.repo

[docker] name=docker

baseurl=https://mirrors.aliyun.com/docker-ce/linux/rhel/9/x86_64/stable/

gpgcheck=0

[root@k8s-master ~]# dnf install docker-ce -y

4.所有节点设定 docker资源管理模式为systemd

[root@k8s-master ~]# vim /etc/docker/daemon.json

{

"registry-mirrors": ["https://reg.timinglee.org"],

"exec-opts": ["native.cgroupdriver=systemd"],

"log-driver": "json-file",

"log-opts": {

                "max-size": "100m"

},

  "storage-driver": "overlay2"

}

4.复制harbor仓库中的证书并启动docker

 k8s-master:#mkdir /etc/docker/certs.d/reg.timinglee.org/ -p

harbor:#scp /data/certs/timinglee.org.crt root@172.25.254.100:/etc/docker/certs.d/reg.timinglee.org/ca.crt

同时把密钥拷给所有node节点

确保master和所有节点都能访问harbor仓库

5.安装k8s部署工具

添加软件仓库中k8s源

[root@k8s-master ~]# vim /etc/yum.repos.d/k8s.repo

[k8s] name=k8s

baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm

gpgcheck=0

#安装软件 [root@k8s-master ~]# dnf install kubelet-1.30.0 kubeadm-1.30.0 kubectl-1.30.0 -y

4.设置kubectl命令补全功能

[root@k8s-master ~]# dnf install bash-completion -y 

[root@k8s-master ~]# echo "source > ~/.bashrc

[root@k8s-master ~]# source ~/.bashrc

5.在master节点拉取k8s所需要的镜像

kubeadm config print init-defaults

手动指定镜像下载位置和容器管理接口

kubeadm config images pull \

--image-repository registry.aliyuncs.com/google_containers \  #拉取镜像的位置现在我们所用的为aliyun的

--kubernetes-version v1.30.0 \  #需要的版本

--cri-socket=unix:///var/run/cri-dockerd.sock   #拉取需要连接容器控制器使用

先在master登录harbor仓库

拉取结束上传至我们的harbor仓库

[root@k8s-master ~]# docker images | awk '/google/{ print $1":"$2}' \ | awk -F "/" '{system("docker  tag "$0" reg.timinglee.org/k8s/"$3)}'

[root@k8s-master ~]# docker images | awk '/k8s/{system("docker push "$1":"$2)}'

6..在节点安装cri-docker

k8s从1.24版本开始就移除了dockershim 所以节点安装cri-docker插件才能使同docker

在节点安装插件和插件依赖性用docker管理k8s 和docker依赖

vim/lib/systemd/system/cri-docker.service#编写该文件夹 加上网络插件和根容器

指定网络插件名称及基础容器镜像 ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --networkplugin=cni --pod-infra-container-image=reg.timinglee.org/k8

systemctl daemon-reload

以上操作master和node节点都要做

例:scp -r /lib/systemd/system/cri-docker.service  @root172.25.254.10:/lib/systemd/system/cri-docker.service

7.集群初始化

#kubeadm init --pod-network-cidr=192.188.0.0/16 \  #初始化并设定容器集群的网络

--image-repository reg.timinglee.org/k8s \  #

--kubernetes-version v1.30.0 \ #指k8s版本

--cri-socket=unix:///var/run/cri-dockerd.sock #指定插件使docker和k8s结合到一起使用

#kubeadm reset --cri-socket=unix:///var/run/cri-dockerd.sock重置集群

8.指定主配置文件

#指定集群配置文件变量 [

root@k8s-master ~]# echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

source ~/.bash_profile

初始化完成

9.安装网络插件

导入flannel插件 和 kube-flannel.yml

将网络插件导入到本地docker仓库 并且上传到harbor仓库中

kubectl apply -f kube-flannel.yml 安装flannel.yml

10.节点扩容

1.禁用swap

2.安装kubelet-1.30.0 kubeadm-1.30.0 kubectl-1.30.0

docker-ce

cri-dockerd#连接docker和k8s 的 还有一个依赖

修改cri-dockerd启动文件添加 vim /lib/systemd/system/cri-docker.service

ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --networkplugin=cni --pod-infra-container-image=reg.timinglee.org/k8s/pause:3.9

5 启动服务 kubelet.service cri-docker.service

root@k8s-node1 & 2 ~]# kubeadm join 172.25.254.100:6443 --token 5hwptm.zwn7epa6pvatbpwf --discovery-token-ca-cert-hash sha256:52f1a83b70ffc8744db5570288ab51987ef2b563bf906ba4244a300f61e9db23 --crisocket=unix:///var/run/cri-dockerd.soc


http://www.kler.cn/a/593026.html

相关文章:

  • 视频对讲系统中,强插和强拆;视频分发功能
  • 汽车一键启动PKE无钥匙系统
  • 学习TensorFlow前的NumPy核心知识点
  • AI 时代,学习 Java 应如何入手?
  • Python pyqt+flask做一个简单实用的自动排班系统
  • Conda 虚拟环境创建:加不加 Python 版本的深度剖析
  • 十四、OSG学习笔记-事件响应
  • Qt 控件概述 QWdiget 1.1
  • 事件系统简介+Button组件+Toggle简介
  • 一次Linux下 .net 调试经历
  • 【C++】list(下):list类的模拟实现(含反向迭代器实现)
  • 2025赛逸展,消费电子企业角逐科技创新奖
  • 网络编程--服务器双客户端聊天
  • Java设计模式之享元模式
  • 【深度学习与大模型基础】第7章-特征分解与奇异值分解
  • Docker build 会在本地产生巨大的文件
  • vue3计算当前日期往前推一个月的日期,当前日期往前推7天
  • 用 C 语言理解封装、继承、多态
  • 单机 elasticsearch下载,安装,配置,启动,百度云链接提供
  • 技术视界 | 灵巧手的工作空间:解锁机器人精细操作的无限可能