• K8s搭建(单节点)


    Kubernetes 搭建(单节点)

    1.准备一台CentOS7系统虚拟机,Kubernetes官方建议内存最好2G

    2.使用Xshell来连接虚拟机,首先获取虚拟机ip地址(我的IP为:192.168.111.129)

    ip addr
    
    • 1

    3.使用xshell连接

    新建会话,输入名称(建议与之后设置的节点名一致,比如:k8s-master,k8s-node1),输入虚拟机IP,点击连接,输入用户名,密码

    4.设置主机名

    hostnamectl set-hostname k8s-master
    
    • 1

    5.安装docker

    如未安装,访问https://kaven.blog.csdn.net/article/details/109871803

    6.启动docker

    使用root用户,如果不是root用户,可以在命令前面加sudosudo是Linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root`命令的一个工具。

    service docker start
    
    • 1

    7.查看docker版本

    docker version
    
    • 1

    8.安装kubeadm、kubelet和kubectl

    需要在每台虚拟机上安装以下安装包:

    • kubeadm:用来初始化集群的指令。
    • kubelet:在集群的每个节点上,用来启动pod和容器等。
    • kubectl:用来与集群通信的命令行工具。

    使用阿里云的yum镜像仓库,官方的yum镜像仓库安装会超时:

    cat < /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
     EOF
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    SELinux设置为permissive模式(相当于将其禁用), 这是允许容器访问主机文件系统所必须的,例如正常使用pod网络。 你必须这么做,直到kubelet做出升级支持SELinux为止。

    setenforce 0
    sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
    
    • 1
    • 2

    9.安装kubeadmkubeletkubectl

    使用yum安装指定安装版本,目前使用版本为1.19.4,网上教程大多为1.15,有一些命令没有,所以不建议使用

    yum install -y kubelet-1.19.4 kubeadm-1.19.4 kubectl-1.19.4 --disableexcludes=kubernetes
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K4HnbqKo-1659591870676)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210830103711499.png)]

    10.启动kubelet

    systemctl enable --now kubelet
    
    • 1

    11.配置虚拟机环境

    关闭虚拟机的防火墙,必须关闭

    systemctl stop firewalld
    
    • 1

    查看虚拟机防火墙的状态

    systemctl status firewalld 
    
    • 1

    执行下面命令

    systemctl enable docker.service
    
    • 1

    创建daemon.json

    vi /etc/docker/daemon.json
    
    • 1

    在daemon.json中输入

    {
     "exec-opts":["native.cgroupdriver=systemd"]
    }
    
    • 1
    • 2
    • 3

    重启Docker,再查看Docker运行状态

    systemctl restart docker 
    systemctl status docker
    
    • 1
    • 2

    12.禁用当前swap,必须禁用

    swapoff -a 
    或者
    vim /etc/fstab(永久关闭)
    注释掉:/dev/mapper/centos_192-swap swap                    swap    defaults        0 0
    
    • 1
    • 2
    • 3
    • 4

    13.在vim /etc/hosts下面配置

    192.168.111.129 k8s-master
    
    192.168.111.129 etcd
    
    192.168.111.129 registry
    
    • 1
    • 2
    • 3
    • 4
    • 5

    14.配置静态ip地址,防止ip动态变化

    进入到/etc/sysconfig/network-scripts/ifcfg-你的网卡名字,使用ipconfig查看网卡名称

    ipconfig
    
    • 1

    vim /etc/sysconfig/network-scripts/ifcfg-ens33 编译后加入如下内容

    BOOTPROTO="static" # 使用静态IP地址,默认是dhcp
    
    IPADDR="192.168.111.129" # 设置的静态IP地址
    
    NETMASK="255.255.255.0" # 子网掩码
    
    GATEWAY="192.168.111.2" # 网关地址(使用route -n 第一行就是默认的网关)
    
    DNS1="192.168.111.2" # DNS服务器 (cat /etc/resolv.conf 查看)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    15.使用kubeadm创建集群

    master节点使用kubeadm创建集群

    kubeadm init:执行此命令,初始化Kubernetes集群的控制平面。
    kubeadm join:执行此命令,加入到现有的Kubernetes集群中。
    
    • 1
    • 2

    介绍一下kubeadm init命令常用的参数:

    --kubernetes-version:指定Kubernetes的版本。
    --pod-network-cidr: 指定pod网络的IP地址,它的值取决于你选择哪个网络,比如Flannel网络,因此值需要指定为10.244.0.0/16,因为Flannel网络相对于其他网络要简单一些,对于刚开始搭建Kubernetes集群比较友好,需要的配置较少,功能也较为完善。
    --apiserver-advertise-address: 指定master节点发布的IP地址,如果不指定,则会自动检测网络接口,通常是内网IP。
    --ignore-preflight-errors:检查错误将显示为检查的警告列表。值为all会忽略所有检查中的错误。
    --image-repository:选择一个Container Registry从中拉取控制平面镜像(默认为k8s.gcr.io,这个Container Registry拉取镜像特别慢,会导致超时,换成阿里云的Container Registry)。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    16.执行kubeadm init

    kubeadm init --kubernetes-version=v1.19.4 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.111.129 --ignore-preflight-errors=all --image-repository=registry.aliyuncs.com/google_containers
    
    • 1

    创建一个yaml文件(kube-flannel.yaml),在文件中添加内容,我已经创建好了,可以直接使用,使用过xftp上传即可。

    17.配置环境

    vim /etc/profile
    export KUBECONFIG=/etc/kubernetes/admin.conf 
    source /etc/profile
    
    • 1
    • 2
    • 3

    18.上传完成后执行以下命令

    kubectl apply -f kube-flannel.yaml
    
    • 1

    至此,一个节点的k8s就已经搭建成功

    18.使用kubectl get pods 查看节点状态

    kubectl get nodes
    
    • 1

    BECONFIG=/etc/kubernetes/admin.conf
    source /etc/profile

    
    18.上传完成后执行以下命令
    
    
    • 1
    • 2
    • 3

    kubectl apply -f kube-flannel.yaml

    
    至此,一个节点的k8s就已经搭建成功
    
    18.使用kubectl get pods 查看节点状态
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    kubectl get nodes

    • 相关阅读:
      10.11 作业
      SpringBoot-EasyExcel(大数据处理)
      utm 转 经纬度坐标 cesium Ue4 CityEngine
      基于改进灰狼优化算法的边缘计算任务调度方法
      windows driver开发和双机调试环境搭建
      Linux之bind 函数(详细篇)
      手搓一个“七夕限定”,用3D Engine 5分钟实现烟花绽放效果
      em/px/rem/vh/vw 的区别?
      docker清理缓存
      高考选择:专业优先还是学校优先?
    • 原文地址:https://blog.csdn.net/weixin_47284857/article/details/126157978