如何在Centos中搭建 K8s 1.23 集群

 更新时间:2025年03月07日 10:40:00   作者:明明跟你说过  
文章详细介绍了在CentOS上搭建Kubernetes 1.23集群的步骤,包括准备环境、安装Kubernetes软件包、上传离线镜像、初始化集群、添加节点、安装网络插件以及测试验证,感兴趣的朋友一起看看吧

一、准备基础环境

1、准备两台Centos服务器,建议2C4G及以上

角色IP系统版本主机名安装组件
Master192.168.40.100Centos 7.9master1apiserver、controller-manager、scheduler、etcd、kube-proxy、docker、 calico
Node192.168.40.101Centos 7.9node1kubelet、kube-proxy、docker、calico、coredns

2、修改主机名

[root@localhost ~]# hostnamectl set-hostname master1 && bash
[root@master1 ~]# hostnamectl set-hostname node1 && bash

3、修改hosts文件,使主机之间可以通过主机名访问

Master节点

[root@master1 ~]# vim /etc/hosts
#添加如下内容
192.168.40.100 master1
192.168.40.101 node1

Node节点

[root@node1 ~]# vim /etc/hosts
#添加如下内容
192.168.40.100 master1
192.168.40.101 node1

4、关闭SELinux、firewalld、swap

关闭SELinux

#Master节点
[root@master1 ~]# vim /etc/selinux/config
#修改如下内容
SELINUX=disabled
#重启服务器
[root@master1 ~]# reboot
#Node节点
[root@node1 ~]# vim /etc/selinux/config
#修改如下内容
SELINUX=disabled
#重启服务器

关闭防火墙

[root@master1 ~]# systemctl stop firewalld && systemctl disable firewalld
[root@node1 ~]# systemctl stop firewalld && systemctl disable firewalld

关闭swap交换分区

#Master节点
[root@master1 ~]# vim /etc/fstab
#注释下面这一行
#/dev/mapper/centos-swap swap                    swap    defaults        0 0
#重启服务器
[root@master1 ~]# reboot
#Node节点
[root@node1 ~]# vim /etc/fstab
#注释下面这一行
#/dev/mapper/centos-swap swap                    swap    defaults        0 0
#重启服务器
[root@node1 ~]# reboot

5、修改内核参数

#加载 br_netfilter 内核模块
[root@master1 ~]# modprobe br_netfilter
[root@master1 ~]# echo "modprobe br_netfilter" >> /etc/profile
[root@master1 ~]# vim /etc/sysctl.d/k8s.conf
#添加以下内容
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
#加载配置参数
[root@master1 ~]# sysctl -p /etc/sysctl.d/k8s.conf
#加载 br_netfilter 内核模块
[root@node1 ~]# modprobe br_netfilter
[root@node1 ~]# echo "modprobe br_netfilter" >> /etc/profile
[root@node1 ~]# vim /etc/sysctl.d/k8s.conf
#添加以下内容
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
#加载配置参数
[root@node1 ~]# sysctl -p /etc/sysctl.d/k8s.conf
 

6、配置镜像源

安装 yum-utils 软件包,添加镜像源

[root@master1 ~]# yum install yum-utils -y
[root@master1 ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@master1 ~]# vim  /etc/yum.repos.d/kubernetes.repo
#添加如下内容
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
[root@node1 ~]# yum install yum-utils -y
[root@node1 ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@node1 ~]# vim  /etc/yum.repos.d/kubernetes.repo
#添加如下内容
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
 

7、开启IPVS

[root@master1 ~]# vim /etc/sysconfig/modules/ipvs.modules
#添加如下内容
#!/bin/bash
ipvs_modules="ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack"
for kernel_module in ${ipvs_modules}; do
 /sbin/modinfo -F filename ${kernel_module} > /dev/null 2>&1
 if [ 0 -eq 0 ]; then
 /sbin/modprobe ${kernel_module}
 fi
done
[root@master1 ~]# bash /etc/sysconfig/modules/ipvs.modules
[root@node1 ~]# vim /etc/sysconfig/modules/ipvs.modules
#添加如下内容
#!/bin/bash
ipvs_modules="ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack"
for kernel_module in ${ipvs_modules}; do
 /sbin/modinfo -F filename ${kernel_module} > /dev/null 2>&1
 if [ 0 -eq 0 ]; then
 /sbin/modprobe ${kernel_module}
 fi
done
[root@node1 ~]# bash /etc/sysconfig/modules/ipvs.modules

二、安装k8s集群

1、安装docker服务

#安装docker
[root@master1 ~]# yum install docker-ce -y
#启动docker并设置开机自启动
[root@master1 ~]# systemctl start docker && systemctl enable docker.service
#添加docker镜像加速器
[root@master1 ~]# tee /etc/docker/daemon.json <<-'EOF'  
> {  
>   "registry-mirrors": ["https://ffunzkst.mirror.aliyuncs.com"]  
> }  
> EOF
#重载配置并重新启动
[root@master1 ~]# systemctl daemon-reload  && systemctl restart docker && systemctl status docker
#安装docker
[root@node1 ~]# yum install docker-ce -y
#启动docker并设置开机自启动
[root@node1 ~]# systemctl start docker && systemctl enable docker.service
#添加docker镜像加速器
[root@node1 ~]# tee /etc/docker/daemon.json <<-'EOF'  
> {  
>   "registry-mirrors": ["https://ffunzkst.mirror.aliyuncs.com"]  
> }  
> EOF
#重载配置并重新启动
[root@node1 ~]# systemctl daemon-reload  && systemctl restart docker && systemctl status docker

2、安装k8s软件包

#安装软件包
[root@master1 ~]# yum install -y kubelet-1.23.1 kubeadm-1.23.1 kubectl-1.23.1
#为kubelet设置开机自启动
[root@master1 ~]# systemctl enable kubelet
#安装软件包
[root@node1 ~]# yum install -y kubelet-1.23.1 kubeadm-1.23.1 kubectl-1.23.1
#为kubelet设置开机自启动
[root@node1 ~]# systemctl enable kubelet

3、上传k8s离线镜像包到服务器,包可以到阿里云去下载

#加载镜像
[root@master1 ~]# docker load -i k8s-images-v1.23.1.tar.gz
[root@node1 ~]# docker load -i k8s-images-v1.23.1.tar.gz

4、初始化k8s集群

#初始化集群
[root@master1 ~]# kubeadm init --kubernetes-version=1.23.1  --apiserver-advertise-address=192.168.40.100  --image-repository registry.aliyuncs.com/google_containers  --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=SystemVerification
#执行以下命令
[root@master1 ~]#   mkdir -p $HOME/.kube
[root@master1 ~]#   sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master1 ~]#   sudo chown $(id -u):$(id -g) $HOME/.kube/config
#查看集群
[root@master1 ~]# kubectl get node

5、添加node节点到集群

#打印加入k8s集群的命令
[root@master1 ~]# kubeadm token create --print-join-command
#复制命令到node节点执行
[root@node1 ~]# kubeadm join 192.168.40.100:6443 --token dc41lr.7cxmkrsrt4l17tcm --discovery-token-ca-cert-hash sha256:b619364d63e2d21f4a27d7120e9222a82e1511cf7bf6f3808d78b5c672e3d790
#回到master节点,查看node节点是否加入到集群中
[root@master1 ~]# kubectl get node
NAME      STATUS     ROLES                  AGE     VERSION
master1   NotReady   control-plane,master   5m35s   v1.23.1
node1     NotReady   <none>                 30s     v1.23.1

6、为node节点修改role

#修改Node节点的role
[root@master1 ~]# kubectl label node node1 node-role.kubernetes.io/worker=worker
#查看修改结果
[root@master1 ~]# kubectl get node
NAME      STATUS     ROLES                  AGE     VERSION
master1   NotReady   control-plane,master   7m31s   v1.23.1
node1     NotReady   worker                 2m26s   v1.23.1

7、为k8s集群安装网络插件

上传calico的yaml文件,文件可以到k8s官网去下载

#创建资源
[root@master1 ~]# kubectl apply -f calico.yaml
#查看Pod状态,如果全部为running,则安装成功
[root@master1 ~]# kubectl get pod -n kube-system -owide
 

三、测试

1、创建第一个Pod

#在控制节点上,创建一个yaml文件
[root@master1 ~]# vim deploy.yaml
#添加如下内容
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
#创建资源
[root@master1 ~]# kubectl apply -f  deploy.yaml
#查看Pod状态,首次创建需要拉取镜像,要等一会状态才会为running
[root@master1 ~]# kubectl get pod
NAME                               READY   STATUS    RESTARTS   AGE
nginx-deployment-9456bbbf9-n7z66   1/1     Running   0          16s

2、创建Service资源

#在控制节点创建一个service的yaml文件
[root@master1 ~]# vim service.yaml
#添加如下内容
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
    - port: 80
      targetPort: 80
      nodePort: 30080
#创建service
[root@master1 ~]# kubectl apply -f service.yaml
#验证结果
[root@master1 ~]# kubectl get service
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP        21m
my-service   NodePort    10.108.221.141   <none>        80:30080/TCP   7s

3、验证结果

在浏览器地址栏输入http://192.168.40.100:30080,如果能访问到nginx,则服务启动成功

至此,k8s集群安装完成

到此这篇关于在Centos中搭建 K8s 1.23 集群超详细讲解的文章就介绍到这了,更多相关Centos搭建 K8s 1.23 集群内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 阿里云oss对象存储使用详细步骤

    阿里云oss对象存储使用详细步骤

    本文主要介绍了阿里云oss对象存储使用详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • CentOS 7下YUM 本地仓库的搭建详细步骤

    CentOS 7下YUM 本地仓库的搭建详细步骤

    这篇文章主要介绍了CentOS 7下YUM 本地仓库的搭建详细步骤的相关资料,希望通过本文能帮助到大家实现这样的功能,需要的朋友可以参考下
    2017-09-09
  • 教你在k8s上部署HADOOP-3.2.2(HDFS)的方法

    教你在k8s上部署HADOOP-3.2.2(HDFS)的方法

    这篇文章主要介绍了k8s-部署HADOOP-3.2.2(HDFS)的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • k8s部署Ingress并创建规则的详细介绍

    k8s部署Ingress并创建规则的详细介绍

    这篇文章主要介绍了k8s部署Ingress并创建规则,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • k8s pod和service网络暴露详解

    k8s pod和service网络暴露详解

    这篇文章主要介绍了借助iptables的路由转发功能,打通k8s集群内的pod和service网络,与外部网络联通,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • k8s如何给node添加标签(最新推荐)

    k8s如何给node添加标签(最新推荐)

    k8s集群如果由大量节点组成,可将节点打上对应的标签,然后通过标签进行筛选及查看,更好的进行资源对象的相关选择与匹配,这篇文章主要介绍了k8s如何给node添加标签,需要的朋友可以参考下
    2023-02-02
  • 2022最新青龙面板部署完整版图文教程

    2022最新青龙面板部署完整版图文教程

    这篇文章主要介绍了2022最新青龙面板部署完整版图文教程,下面以腾讯云服务器为例,先选地区、然后选择官方镜像、系统镜像、Centos7.6版本,需要的朋友可以参考下
    2022-05-05
  • k8s series初级calico使用介绍

    k8s series初级calico使用介绍

    这篇文章主要为大家介绍了k8s series初级calico使用介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Kubernetes中使用临时容器进行故障排查的方法

    Kubernetes中使用临时容器进行故障排查的方法

    在使用Kubernetes时,用户常常会遇到一些错误和迷惑,下面这篇文章主要给大家介绍了关于Kubernetes中使用临时容器进行故障排查的相关资料,需要的朋友可以参考下
    2022-03-03
  • 青龙面板拉库解决没有或丢失依赖can‘t find module的保姆级教程(附青龙面板脚本仓库)

    青龙面板拉库解决没有或丢失依赖can‘t find module的保姆级教程(附青龙面板脚本仓库)

    这篇文章主要介绍了青龙面板拉库解决没有或丢失依赖can‘t find module的保姆级教程(附青龙面板脚本仓库),需要的朋友可以参考下
    2022-05-05

最新评论