• k8s- centos7.8搭建


    vmware16.0 

    centos7.8

    1. 使用vmware安装 centos环境  cpu4个 内存4G 网络nat模式

    2.配置网络

    vim /etc/sysconfig/network-scripts/ifcfg-ens33

    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="static"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="ens33"
    UUID="9d3068f1-0e86-4a6d-806b-ed01f6887992"
    DEVICE="ens33"
    ONBOOT="yes"
    IPADDR=192.168.33.60
    NETMASK=255.255.255.0
    GATEWAY=192.168.33.2
    DNS1=8.8.8.8
    PREFIX=24
    

      

    3. 安装需要工具

    yum -y install vim net-tools 

    4 master节点

     设置 host那么 

    # 修改 hostname
    hostnamectl set-hostname k8s-master
    # 查看修改结果
    hostnamectl status
    # 设置 hostname 解析
    echo "127.0.0.1   $(hostname)" >> /etc/hosts

    检查网络 

    [root@demo-master-a-1 ~]$ ip route show
    default via 172.21.0.1 dev eth0 
    169.254.0.0/16 dev eth0 scope link metric 1002 
    172.21.0.0/20 dev eth0 proto kernel scope link src 172.21.0.12 
    
    [root@demo-master-a-1 ~]$ ip address
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:16:3e:12:a4:1b brd ff:ff:ff:ff:ff:ff
        inet 172.17.216.80/20 brd 172.17.223.255 scope global dynamic eth0
           valid_lft 305741654sec preferred_lft 305741654sec
    

      

    kubelet使用的IP地址

    • ip route show 命令中,可以知道机器的默认网卡,通常是 eth0,如 default via 172.21.0.23 dev eth0
    • ip address 命令中,可显示默认网卡的 IP 地址,Kubernetes 将使用此 IP 地址与集群内的其他节点通信,如 172.17.216.80
    • 所有节点上 Kubernetes 所使用的 IP 地址必须可以互通(无需 NAT 映射、无安全组或防火墙隔离)

    接下来安装需要满足下面条件才能继续

    安装docker及kubelet

    请认真核对如下选项,7 个都选中后才能显示如何安装。

    选中后显示 安装 docker/kubelet 的文档






    使用 root 身份在所有节点执行如下代码,以安装软件:

    • docker
    • nfs-utils
    • kubectl / kubeadm / kubelet

    docker hub 镜像请根据自己网络的情况任选一个

    • 第四行为腾讯云 docker hub 镜像
    • 第六行为DaoCloud docker hub 镜像
    • 第八行为华为云 docker hub 镜像
    • 第十行为阿里云 docker hub 镜像
    # 在 master 节点和 worker 节点都要执行
    # 最后一个参数 1.19.2 用于指定 kubenetes 版本,支持所有 1.19.x 版本的安装
    # 腾讯云 docker hub 镜像
    # export REGISTRY_MIRROR="https://mirror.ccs.tencentyun.com"
    # DaoCloud 镜像
    # export REGISTRY_MIRROR="http://f1361db2.m.daocloud.io"
    # 华为云镜像
    # export REGISTRY_MIRROR="https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com"
    # 阿里云 docker hub 镜像
    export REGISTRY_MIRROR=https://registry.cn-hangzhou.aliyuncs.com
    curl -sSL https://kuboard.cn/install-script/v1.19.x/install_kubelet.sh | sh -s 1.19.2
    

      

    初始化 master 节点

    关于初始化时用到的环境变量

    • APISERVER_NAME 不能是 master 的 hostname
    • APISERVER_NAME 必须全为小写字母、数字、小数点,不能包含减号
    • POD_SUBNET 所使用的网段不能与 master节点/worker节点 所在的网段重叠。该字段的取值为一个 CIDR 值,如果您对 CIDR 这个概念还不熟悉,请仍然执行 export POD_SUBNET=10.100.0.1/16 命令,不做修改

    请将脚本最后的 1.19.2 替换成您需要的版本号, 脚本中间的 v1.19.x 不要替换


    # 只在 master 节点执行
    # 替换 x.x.x.x 为 master 节点实际 IP(请使用内网 IP)
    # export 命令只在当前 shell 会话中有效,开启新的 shell 窗口后,如果要继续安装过程,请重新执行此处的 export 命令
    export MASTER_IP=x.x.x.x
    # 替换 apiserver.demo 为 您想要的 dnsName
    export APISERVER_NAME=apiserver.demo
    # Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中
    export POD_SUBNET=10.100.0.1/16
    echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts
    curl -sSL https://kuboard.cn/install-script/v1.19.x/init_master.sh | sh -s 1.19.2

    检查 master 初始化结果


    # 只在 master 节点执行
    
    # 执行如下命令,等待 3-10 分钟,直到所有的容器组处于 Running 状态
    watch kubectl get pod -n kube-system -o wide
    
    # 查看 master 节点初始化结果
    kubectl get nodes -o wide
    

      

    初始化 worker节点

    #获得 join命令参数

    在 master 节点上执行

    # 只在 master 节点执行
    kubeadm token create --print-join-command
    

      

    可获取kubeadm join 命令及参数,如下所示

    # kubeadm token create 命令的输出
    kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt     --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303

    有效时间

    该 token 的有效时间为 2 个小时,2小时内,您可以使用此 token 初始化任意数量的 worker 节点。

    #初始化worker

    针对所有的 worker 节点执行

    # 只在 worker 节点执行
    # 替换 x.x.x.x 为 master 节点的内网 IP
    export MASTER_IP=x.x.x.x
    # 替换 apiserver.demo 为初始化 master 节点时所使用的 APISERVER_NAME
    export APISERVER_NAME=apiserver.demo
    echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts
    
    # 替换为 master 节点上 kubeadm token create 命令的输出
    kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt     --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303
    

      

    #检查初始化结果

    在 master 节点上执行

    # 只在 master 节点执行
    kubectl get nodes -o wide
     

    输出结果如下所示:

    [root@demo-master-a-1 ~]# kubectl get nodes
    NAME     STATUS   ROLES    AGE     VERSION
    demo-master-a-1   Ready    master   5m3s    v1.19.x
    demo-worker-a-1   Ready    <none>   2m26s   v1.19.x
    demo-worker-a-2   Ready    <none>   3m56s   v1.19.x
    

      

    安装kuboard

    kubectl apply -f https://kuboard.cn/install-script/kuboard.yaml
    kubectl apply -f https://addons.kuboard.cn/metrics-server/0.3.7/metrics-server.yaml
    

      

    查看 Kuboard 运行状态

    kubectl get pods -l k8s.kuboard.cn/name=kuboard -n kube-system
    

      

    输出结果如下所示:

    NAME                       READY   STATUS        RESTARTS   AGE
    kuboard-54c9c4f6cb-6lf88   1/1     Running       0          45s
    

      

    获取Token

    echo $(kubectl -n kube-system get secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)
    

      

    访问Kuboard

    http://任意一个Worker节点的IP地址:32567/
    

      

  • 相关阅读:
    IE浏览器中Image对象onload失效的解决办法
    jquery.lazyload 实现图片延迟加载jquery插件
    在JS方法中返回多个值的三种方法
    遭遇input与button按钮背景图失效不显示的解决办法
    jquery:validate的例子
    JavaScript toLowerCase() 方法 把字符串转换为小写
    Linux下的MySQL简单操作(服务启动与关闭、启动与关闭、查看版本)
    phpcms-v9视频模型的添加
    Linux下如何查看tomcat是否启动
    margin-top无效的问题解决方法
  • 原文地址:https://www.cnblogs.com/brady-wang/p/13790120.html
Copyright © 2020-2023  润新知