• 安装3节点的K8S


    环境初始化
    1、编辑主机文件 ,三台虚拟机都需要配置

    # vim /etc/hosts
    192.168.59.139 master
    192.168.59.141 node1
    192.168.59.142 node2
    
    • 1
    • 2
    • 3
    • 4

    2、保持时间一致

    # yum install chrony
    # vim /etc/chrony.conf
    server ntp1.aliyun.com iburst
    # 启动服务
    systemctl strat chronyd
    systemctl enable chronyd
    date
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    3、停用firewalld服务

    禁用firewalld:
    # systemctl stop firewalld
    # systemctl disable firewalld
    # firewall-cmd --state
    not running
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4、禁用selinux

    # setenforce 0
    # vim /etc/selinux/config
    SELINUX=disabled
    
    • 1
    • 2
    • 3

    5、禁用swap分区

    # 编辑分区配置文件/etc/fstab,注释掉swap分区一行
    
    • 1

    在这里插入图片描述
    6、配置ipvs功能

     1 安装ipset和ipvsadm
    # yum install ipset ipvsadm -y
     2 添加需要加载的模块写入脚本文件
    # vim /etc/sysconfig/modules/ipvs.modules
     3 为脚本文件添加执行权限
    # chmod +x /etc/sysconfig/modules/ipvs.modules
     4 执行脚本
    # /bin/bash /etc/sysconfig/modules/ipvs.modules
     5 查看
    lsmod | grep -e ip_vs -e nf_conntrack_ipv4
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述
    基础环境准备
    1、使用阿里云YUM源

    # vim /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=0
    repo_gpgcheck=0
    gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
           http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    
    # yum clean all && yum makecache
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2、集群软件安装

    安装kubeadm、kubelet和kubectl 
    # yum install kubeadm kubelet kubectl -y
    查看可用版本
    # yum list kubeadm kubelet kubectl --showduplicates | sort -r
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    默认安装的就是1.24.X版本的

    # yum install kubeadm-1.24.2 kubelet-1.24.2 kubectl-1.24.2
    安装的是1.24.2版本的
    
    安装后查查看版本
    # kubeadm version
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    3、配置kubelet的cgroup

    # vim /etc/sysconfig/kubelet
    KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
    KUBE_PROXY_MODE="ipvs"
    
    • 1
    • 2
    • 3

    4、设置开机自启动

    # systemctl enable kubelet
    
    • 1

    集群创建方式:containerd
    1、安装containerd

     # Step 1: 安装必要的一些系统工具
     yum install -y yum-utils device-mapper-persistent-data lvm2 
     # Step 2: 添加软件源信息 yum-config-manager --add-repo https://mirrors.aliyun.com/docker- ce/linux/centos/docker-ce.repo
     # Step 3 sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo 
     # Step 4:查询软件包 yum list | grep containerd containerd.io.x86_64 1.6.6-3.1.el7 docker- ce-stable 
     # Step 5:安装软件包 [root@node1 ~]# yum install containerd -y 
     # Step 6:初始化默认配置 containerd config default | tee /etc/containerd/config.toml 
     # Step 7:修改containerd配置更改cgroup sed -i "s#SystemdCgroup\ \=\ false#SystemdCgroup\ \=\ true#g" /etc/containerd/config.toml 
     # Step 8:修改镜像源 sed -i "s#k8s.gcr.io#registry.aliyuncs.com/google_containers#g" /etc/containerd/config.toml 
     # Step 9:配置crictl 
     cat  /etc/crictl.yaml 
     runtime-endpoint: unix:///run/containerd/containerd.sock 
     image-endpoint: unix:///run/containerd/containerd.sock 
     timeout: 10 
     debug: false 
     
     systemctl daemon-reload 
     systemctl restart containerd 
     systemctl enable containerd 
     # 验证是否可用 
     crictl pull nginx:alpine 
     crictl rmi nginx:alpine 
     crictl images
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    初始化 Master 节点
    1)生成并修改配置文件

     生成配置文件 
    # kubeadm config print init-defaults > kubeadm.yml
    
     修改如下配置:
    advertiseAddress:为控制切面地址,( Master 主机 IP )
    criSocket:为 containerd 的 socket 文件地址
    name: node 修改node为 master
    imageRepository:阿里云镜像代理地址,否则拉取镜像会失败
    kubernetesVersion:为 k8s 版本
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述
    2)初始化 K8S 集群

     # 查看所需镜像列表 
     kubeadm config images list --config kubeadm.yml 
     # 拉取镜像 
     kubeadm config images pull --config kubeadm.yml 
     # 根据配置文件启动 kubeadm 初始化 k8s 
     kubeadm init --config=kubeadm.yml --upload-certs --v=6
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    添加 Worker 节点
    在这里插入图片描述

    kubeadm join 192.168.59.139:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:99e9fdf526f28bb422573e34c903691ba5eb6421048d0c1cdf6df6305c02a2e1
    
    • 1
    • 2

    node1
    在这里插入图片描述
    node2
    在这里插入图片描述
    查看集群节点
    在这里插入图片描述
    服务部署

    # 部署nginx 
    [root@master ~]# kubectl create deployment nginx --image=nginx:1.14-alpine
    # 暴露端口 
    [root@master ~]# kubectl expose deployment nginx --port=80 --type=NodePort
    # 查看服务状态 
    [root@master ~]# kubectl get pods,service
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    这里会出现一个问题
    在这里插入图片描述

    **kubectl命令出现错误“The connection to the server localhost:8080 was refused”**
    解决方法:
    
     1.将主节点(master)中的“/etc/kubernetes/admin.conf”文件拷贝到从节点相同目录下
     2.配置环境变量
    
      echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
     3.立即生效
      source ~/.bash_profile
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述
    最后在电脑上访问下部署的nginx服务

    在这里插入图片描述

  • 相关阅读:
    【Verilog 教程】6.6Verilog 仿真激励
    Machine learning week 8(Andrew Ng)
    GoLong的学习之路(六)语法之指针
    如何让HTTPS站点评级达到A+? 还得看这篇HTTPS安全优化配置最佳实践指南
    Vue3从零开始——掌握setup、ref和reactive函数的奥秘
    VUE学习
    dvwa靶机与web漏洞扫描(vega)
    为了简写这行代码,我竟使用静态和动态编译技术
    物联网开发笔记(5)- 使用Wokwi仿真树莓派Pico实现LED灯交替闪烁(续)
    jvisualvm 远程连接 jvm
  • 原文地址:https://blog.csdn.net/JiaGeYa/article/details/126378713