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

搭建Kubernetes (K8s) 集群----Centos系统

前期准备

准备3台Linux虚拟机(CentOS系统),参考

https://carry.blog.csdn.net/article/details/144578009https://carry.blog.csdn.net/article/details/144578009搭建Docker环境,参考

https://carry.blog.csdn.net/article/details/107404319https://carry.blog.csdn.net/article/details/107404319设置好镜像加速器:

  • 阿里云 Docker 镜像加速器

    • 网址:https://cr.console.aliyun.com/
    • 在阿里云控制台中创建加速器,并按照提示配置你的 daemon.json 文件。
  • DaoCloud 镜像加速器

    • 网址:https://www.daocloud.io/mirror
    • 提供简单易用的加速器,注册后即可获得加速器地址。
  • 网易云镜像加速器

    • 网址:https://c.163.com/hub
    • 网易云提供的镜像加速器,速度也很不错。
  • 腾讯云 Docker 镜像加速器

    • 网址:https://cloud.tencent.com/product/acr
    • 腾讯云提供的加速器,注册并绑定你的账号即可使用。
  • 中科大镜像加速器

    • 网址:https://mirrors.ustc.edu.cn/
    • 提供了包括Docker在内的多种开源软件的镜像加速。

编辑 daemon.json

{
  "registry-mirrors": ["https://<your-aliyun-accelerator-address>"]
}

# 重启docker
systemctl daemon-reload
systemctl restart docker

一:配置主机名

每个节点分别设置对应主机名

hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2

二:添加 hosts

Host自己通过ifconfig查看,我自己的3台是192.168.153.128、192.168.153.130、192.168.153.131

vim /etc/hosts



192.168.153.128 master

192.168.153.130 node1

192.168.153.131 node2

三:所有节点关闭 SELinux、防火墙 、禁用swap

# 关闭 SELinux
setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

# 关闭防火墙
systemctl stop firewalld

systemctl disable firewalld

# 禁用swap,编辑 /etc/fstab 文件,注释包含swap的行
sudo vi /etc/fstab

四:添加 k8s 安装源


vi ks.sh
 
# 添加一下内容
cat <<EOF > kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
mv kubernetes.repo /etc/yum.repos.d/
 
# 运行shel
/bin/bash ks.sh

五:通过 yum 安装指定版本的 Kubernetes 组件(kubeletkubectlkubeadm

 
yum install -y kubelet-1.22.4 kubectl-1.22.4 kubeadm-1.22.4
 
# 启动
systemctl enable kubelet
systemctl start kubelet

安装完成后,可以通过以下命令验证安装的版本:

kubelet --version
kubectl version --client
kubeadm version

六:初始化集群

1. 初始化 Kubernetes 集群

首先,使用 kubeadm init 命令初始化主节点集群

kubeadm init \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.22.4 \
  --service-cidr=10.1.0.0/16 \
  --pod-network-cidr=10.244.0.0/16
  • --image-repository registry.aliyuncs.com/google_containers:指定使用阿里云的镜像仓库,避免从国外镜像源拉取时速度慢。
  • --kubernetes-version v1.22.4:指定 Kubernetes 的版本,确保与之前安装的版本一致。
  • --service-cidr=10.1.0.0/16:指定服务的网络地址范围,默认是 10.96.0.0/12,根据实际情况选择一个不冲突的 CIDR 范围。
  • --pod-network-cidr=10.244.0.0/16:指定 Pod 的网络地址范围,这里使用的是 Flannel 的默认网络范围。

2. 保存 kubeadm join 命令

初始化完成后,kubeadm 会输出一个 kubeadm join 命令,这个命令用于将其他工作节点加入集群。记得把这个命令保存下来。

如果忘记了,可以通过以下命令重新获取:

kubeadm token create --print-join-command

返回值:

kubeadm join xxxxx:6443 --token abcdef.1234567890abcdef --discovery-token-ca-cert-hash sha256:9e71e3f4d0246c5e2117a8c62c51ac4f78f82f1ff32d404a9f22c24a562b9b71

3. 配置 kubectl 访问集群

为了能够在主节点上使用 kubectl 命令管理 Kubernetes 集群,你需要将 admin.conf 文件复制到你的用户目录下的 .kube/config 中。

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
  • mkdir -p $HOME/.kube:创建 .kube 目录(如果不存在的话)。
  • cp -i /etc/kubernetes/admin.conf $HOME/.kube/config:复制 Kubernetes 配置文件到用户目录。
  • chown $(id -u):$(id -g) $HOME/.kube/config:确保配置文件的权限是当前用户所有。

4. 其他节点配置

如果你有其他节点需要访问 Kubernetes 集群,可以将主节点上的 /etc/kubernetes/admin.conf 文件复制到其他节点的 ~/.kube/config 路径下。这样,其他节点也能使用 kubectl 访问集群。

在其他节点上执行以下命令:

mkdir -p $HOME/.kube
scp user@master:/etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

5. 安装网络插件

在集群初始化后,你需要安装一个网络插件来实现 Pod 之间的通信。常见的网络插件有 FlannelCalicoWeave 等。这里选择 Flannel,所有节点执行以下命令:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

完成网络插件安装后,节点之间的通信将建立,集群也就可以正常运行了。

6. 加入工作节点

在工作节点上执行 kubeadm join 命令,将节点加入集群,token就是上面第2步生成的。例如:

kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

这样,工作节点就会加入到你的 Kubernetes 集群中了。

7. 验证集群状态

集群初始化和节点加入完成后,可以通过以下命令验证集群状态,比如在主节点执行:

kubectl get nodes

所有节点的状态都是ready代表节点都正常

相关文章:

  • RK3588配置成为路由器
  • 京东广告基于 Apache Doris 的冷热数据分层实践
  • 如何清理cache-loader生成的缓存目录?
  • 命令执行漏洞 Command Execute
  • 数据结构——字符串匹配KMP
  • Linux(ubuntu) GPU CUDA 构建Docker镜像
  • 【PyQt5】python可视化开发:PyQt5介绍,开发环境搭建快速入门
  • Linux-C/C++《C/8、系统信息与系统资源》
  • 抓包工具是什么?
  • 深入解析浏览器渲染全流程:从URL输入到页面渲染的底层原理与性能优化(附实战代码)
  • Memcached和redis对比了解
  • Python—requests模块
  • excel导入Mysql中时间格式异常
  • 深度学习笔记—— GRU(Gated Recurrent Unit)
  • 【设计模式精讲】创建型模式之单例模式(饿汉式、懒汉式、双重校验、静态内部类、枚举)
  • Node IO操作
  • 【阮一峰】2.数组
  • vue3 input type=“file” 修改样式
  • 深入理解Zookeeper:分布式系统的协调者
  • 三、Three.js模型对象、材质
  • 个人网站设计 优帮云/seo 是什么
  • 网站开发的wbs分解图/潮州网络推广
  • 佛山市手机网站建设公司/云南seo简单整站优化
  • 咸阳兼职做网站/东营优化路网
  • 网站 内容建设存在的问题/东营seo
  • 工信部网站 登陆/成都网站seo技巧