在Centos中搭建 K8s 1.23 集群超详细讲解

一、准备基础环境

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集群安装完成

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 在 CentOS 7 搭建 K8S 集群的步骤如下: 1. 安装 Docker: K8S 需要使用 Docker 作为容器引擎, 因此需要在每个节点上安装 Docker。 2. 安装 kubeadm, kubelet 和 kubectl: kubeadm 是用于在 CentOS 上安装和管理 K8S 集群的工具, kubelet 是 K8S 的主要组件, 用于在节点上运行容器, kubectl 是 K8S 的命令行工具, 用于管理集群。 3. 初始化集群: 使用 kubeadm 初始化集群, 在一个节点上运行 kubeadm init 命令。 4. 加入节点: 使用 kubeadm join 命令在其他节点上加入集群。 5. 安装网络插件: 为了使容器之间可以通信, 还需要安装一个网络插件, 常用的有 Flannel 和 Calico。 6. 部署应用: 可以使用 kubectl 命令在集群部署应用, 或者使用其他工具如 Helm。 希望这些信息能够帮助你。 ### 回答2: 在CentOS 7搭建K8S集群的步骤如下: 1. 首先,确保所有节点上的操作系统为CentOS 7,并且所有节点之间能够互相通信。 2. 在所有节点上安装Docker并启动Docker服务。可以通过以下命令进行安装: $ sudo yum install -y docker $ sudo systemctl start docker $ sudo systemctl enable docker 3. 配置Docker的系统参数以支持Kubernetes。通过编辑/etc/docker/daemon.json文件,添加以下内容: { "exec-opts": ["native.cgroupdriver=systemd"] } 4. 配置Kubernetes的YUM源,并安装Kubernetes所需的软件包。可以通过以下命令进行安装: $ sudo vi /etc/yum.repos.d/kubernetes.repo 添加以下内容: [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg $ sudo yum install -y kubelet kubeadm kubectl 5. 配置Kubernetes集群的Master节点。在Master节点上执行以下命令: $ sudo kubeadm init 6. 完成Kubernetes集群的Master节点配置后,按照命令输出的指引,将所需的配置文件拷贝到合适的位置,并设置kubectl的配置文件。例如: $ mkdir -p $HOME/.kube $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config $ sudo chown $(id -u):$(id -g) $HOME/.kube/config 7. 启动Kubernetes集群的网络插件。可以选择任何支持的网络插件,例如Calico、Flannel等。执行以下命令以安装Calico插件: $ kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml 8. 加入其他节点到Kubernetes集群。按照输出的命令在其他节点上执行以加入集群,例如: $ sudo kubeadm join <Master节点IP>:<Master节点端口> --token <Token值> --discovery-token-ca-cert-hash <CA证书哈希值> 9. 检查Kubernetes集群的状态。执行以下命令以查看集群节点的状态: $ kubectl get nodes 10. 完成以上步骤后,Kubernetes集群搭建就完成了。您现在可以开始使用Kubernetes来部署和管理容器应用程序了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明明跟你说过

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值