• Kubernetes -- 部署k8s集群


    目录

    一、部署k8s的两种方式:

    1. kubeadm

    2. 二进制包

    二、环境准备

    机器硬件配置:

    软件准备:

    服务器规划:(本实验采用虚拟机)

    三、初始化配置

    1.安装环境配置:所有机器上操作

    2.安装 Docker、kubeadm、kubelet【所有节点】

    3.添加kubernetes YUM软件源

    四、部署k8s-master【master执行】

    kubeadm部署(需要等上一会)

    五、配置k8s的node节点【node节点操作】

    六、验证是否加入成功 【master上运行】


    一、部署k8s的两种方式:

    目前部署Kubernetes集群主要有两种方式:

    1. kubeadm

    Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。

    2. 二进制包

    从github下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。

    这里我使用的是kubeadm的方式部署

    二、环境准备

    机器硬件配置:

    • 建议最小硬件配置:2核CPU、2G内存、20G硬盘
    • 服务器最好可以访问外网,会有从网上拉取镜像需求,如果服务器不能上网,需要提前下载对应镜像并导入节点

    软件准备:

    • CentOS Linux release 7.9.2009 (Core)
    • Docker:20-ce
    • k8s:1.23.5(版本很重要,不然会出现问题)

    服务器规划:(本实验采用虚拟机)

    • k8s-master :192.168.174.161
    • k8s-node1 :192.168.174.162
    • k8s-node2 :192.168.174.163
    • k8s-node3 :192.168.174.165

    三、初始化配置

    1.安装环境配置:所有机器上操作

    1. # 关闭防火墙
    2. systemctl stop firewalld
    3. systemctl disable firewalld
    4. # 关闭selinux
    5. sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
    6. setenforce 0 # 临时
    7. # 关闭swap
    8. swapoff -a # 临时
    9. sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久
    10. # 根据规划设置主机名
    11. hostnamectl set-hostname k8s-master
    12. hostnamectl set-hostname k8s-node1
    13. hostnamectl set-hostname k8s-node2
    14. hostnamectl set-hostname k8s-node3
    15. # 在master添加hosts
    16. cat >> /etc/hosts << EOF
    17. 192.168.178.161 k8s-master
    18. 192.168.178.162 k8s-node1
    19. 192.168.178.163 k8s-node2
    20. 192.168.178.165 k8s-node3
    21. EOF
    22. #追加到内核会读取的参数文件里
    23. cat <<EOF >> /etc/sysctl.conf
    24. net.bridge.bridge-nf-call-ip6tables = 1
    25. net.bridge.bridge-nf-call-iptables = 1
    26. net.ipv4.ip_nonlocal_bind = 1
    27. net.ipv4.ip_forward = 1
    28. vm.swappiness=0
    29. EOF
    30. #让内核重新读取数据,加载生效
    31. sysctl -p

    2.安装 Docker、kubeadm、kubelet【所有节点】

    1. #下载docker所需源,安装docker
    2. wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
    3. yum -y install docker-ce
    4. #配置 Docker使用systemd作为默认Cgroup驱动
    5. cat <<EOF > /etc/docker/daemon.json
    6. {
    7. "exec-opts": ["native.cgroupdriver=systemd"]
    8. }
    9. EOF
    10. #设置docker开机自启,启动docker
    11. systemctl enable docker && systemctl start docker
    12. #查看docker信息,进行确认
    13. docker info

    3.添加kubernetes YUM软件源

    1. cat > /etc/yum.repos.d/kubernetes.repo << EOF
    2. [kubernetes]
    3. name=Kubernetes
    4. baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    5. enabled=1
    6. gpgcheck=0
    7. repo_gpgcheck=0
    8. gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    9. EOF

    4.安装kubeadm,kubelet和kubectl(一定要注意版本,我就是因为版本问题困扰了我很久)

    #我这里指定安装版本,不指定的话会安装最新的,就可能出现版本问题导致安装失败(安装之前可以先查一下安装的docker对应支持的版本在进行安装)

    yum install -y kubelet-1.23.5 kubeadm-1.23.5 kubectl-1.23.5

    #设置开机自启,因为kubelet是k8s在node节点上的代理,必须开机要运行的
    systemctl enable  kubelet

    四、部署k8s-master【master执行】

    kubeadm部署(需要等上一会)

    kubeadm init \
      --apiserver-advertise-address=192.168.178.161 \
      --image-repository registry.aliyuncs.com/google_containers \
      --kubernetes-version v1.23.5 \
      --service-cidr=10.96.0.0/12 \
      --pod-network-cidr=10.244.0.0/16 \
      --ignore-preflight-errors=all

    • --apiserver-advertise-address 集群通告地址
    • --image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
    • --kubernetes-version K8s版本,与上面安装的一致
    • --service-cidr 集群内部虚拟网络,Pod统一访问入口
    • --pod-network-cidr Pod网络,与下面部署的CNI网络组件yaml中保持一致

    拷贝k8s认证文件

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config

    至此,master就配置好了

    五、配置k8s的node节点【node节点操作】

    复制master配置完成后出现的kubeadm join(上图)到结尾

    kubeadm join 192.168.174.161:6443 --token rc2n3z.1iwfb6ideksdasw8 \
        --discovery-token-ca-cert-hash sha256:55b3ad3fb9b0e0a37059be13439f3ca93720b98699e105f332157da77768d35b

    到node节点上执行,就可以加入集群了

    六、验证是否加入成功 【master上运行】

    kubectl get nodes

    [root@k8s-master ~]# kubectl get nodes
    NAME         STATUS     ROLES                  AGE     VERSION
    k8s-master   NotReady   control-plane,master   3h19m   v1.23.5
    k8s-node1    NotReady                   3h12m   v1.23.5
    k8s-node2    NotReady                   3h7m    v1.23.5
    k8s-node3    NotReady                   3h7m    v1.23.5 

    出现以上效果就成功了 

    参考:

    部署k8s集群(k8s集群搭建详细实践版)_在路上的阿帅的博客-CSDN博客_k8s集群

  • 相关阅读:
    06_Node.js服务器开发
    FireFox禁用HTTP2
    matlab奇技淫巧——绘制三维地图
    AI创作音乐引发的深思
    单臂路由的配置实验
    一些bug
    DNS工作原理分析
    【计算机网络】路由选择协议:内部网关协议RIP
    AJAX基础
    学习java的第二十四天。。。(泛型、Collections、枚举、包装类)
  • 原文地址:https://blog.csdn.net/a1991376352/article/details/126521501