• Ubuntu 20.04集群部署microk8s


    最近由于我一个学习群里的大佬过于卷.所以没办法,只能强迫自己跟着学习提升下自己的能力.
    于是乎就打算先学学k8s,但是传统的k8s过于复杂.为了方便.就选择了micro-k8s,结合熟悉的Ubuntu系统.配置安装都非常的方便.
    这里我们照常准备了3台机器,1台master2台workder.

    • 具体的配置如下:
    master: {
      CPU: 2,
      RAM: 4GB,
      ROM: 50GB,
       IP: 192.168.2.24
    },
    worker: {
      CPU: 8,
      RAM: 16GB,
      ROM: 50GB,
       IP: 192.168.22,192.168.23
    }
    
    • 首先配置好3台服务器.

      然后使用XShell或者类似工具链接上每一台服务器.
    • 安装micro-k8s
    • micro-k8s的安装非常简单,可以参考GitHub的Readme.md
    • 安装命令如下:
    snap install microk8s --classic
    
    • 三台服务器均需要安装,等待数秒(具体时间视网络环境而定),安装完成后,就可以开始配置了.
    • 在主节点上,执行如下命令,获取添加从节点的命令.
    sudo microk8s.add-node
    
    • 可以看到控制台会输出如下结果的信息:
    From the node you wish to join to this cluster, run the following:
    microk8s join 192.168.2.24:25000/f872a823e90242ff12a3e3db202e3e05/030ba9fe293e
    
    Use the '--worker' flag to join a node as a worker not running the control plane, eg:
    microk8s join 192.168.2.24:25000/f872a823e90242ff12a3e3db202e3e05/030ba9fe293e --worker
    
    If the node you are adding is not reachable through the default interface you can use one of the following:
    microk8s join 192.168.2.24:25000/f872a823e90242ff12a3e3db202e3e05/030ba9fe293e
    
    • 其中 microk8s join 192.168.2.24:25000/f872a823e90242ff12a3e3db202e3e05/030ba9fe293e 就是添加子节点的命令.
    • 这个时候切换到从节点的两台服务器分别执行如下命令,由于我们是非root账户登录,执行命令需要添加sudo
    # 可在后边添加 --worker参数,直接添加为worker节点,就不再需要后边设置了.
    sudo microk8s join 192.168.2.24:25000/f872a823e90242ff12a3e3db202e3e05/030ba9fe293e --worker
    
    • 执行这个命令的时间不要拖得太长,避免key失效,若是失效了,从新执行上述添加节点的命令获取新的即可.
    • 在从节点执行加入主节点的命令后,从节点就可以不用管了.这个时候返回到主节点.
    • 为了方便我们需要将microk8s的命令弄个别名,不然每次需要输入的命令太长.
    sudo snap alias microk8s.kubectl kubectl
    
    • 添加dns服务
    sudo microk8s enable dns
    
    • 设置好别名后,即可通过kubectl来执行命令了.
      如:
    # 获取节点信息
    sudo kubectl get nodes
    # 查看集群信息
    sudo kubectl cluster-info
    # 查看pods
    sudo kubectl get pods
    sudo kubectl get services
    

    我这里的环境下会输出如下信息:(这里的worker和master的设置下边会讲到.一开始所有节点ROLES信息应该是一致的)
    NAME STATUS ROLES AGE VERSION
    k8s-03 Ready worker 11h v1.23.3-2+d441060727c463
    k8s-01 Ready master 11h v1.23.3-2+d441060727c463
    k8s-02 Ready worker 11h v1.23.3-2+d441060727c463

    • 接下来设置master节点和worker节点
    # 设置master节点不调度pod,其中的k8s-01需要根据自身实际情况进行替换,这里为服务器的名字,下方的命令也是如此
    sudo kubectl taint node k8s-01 node-role.kubernetes.io/master="":NoSchedule
    # 设置角色为master
    sudo kubectl label nodes k8s-01 node-role.kubernetes.io/master=master
    # 设置工作节点
    sudo kubectl label node k8s-02  node-role.kubernetes.io/worker=worker
    sudo kubectl label node k8s-03  node-role.kubernetes.io/worker=worker
    
    • 设置完成后,再次获取nodes的节点信息,就可以看到工作节点和主节点的分布了.
    # 获取节点信息
    sudo kubectl get nodes
    
    • 获取k8s的config信息,使用Lens
    sudo microk8s.config
    
    • 复制输出的内容,添加到lens的config文件中即可链接micro-k8s了
    • 使用Lens链接成功后,可以进入集群的Setting设置中开启一些服务监控集群状态.

      这三项均开启后,等待所有Pods成功启动后,重启Lens即可看到系统信息

  • 相关阅读:
    [ACM_模拟] ZJUT 1155 爱乐大街的门牌号 (规律 长为n的含k个逆序数的最小字典序)
    [ACM_搜索] ZOJ 1103 || POJ 2415 Hike on a Graph (带条件移动3盘子到同一位置的最少步数 广搜)
    [ACM_动态规划] POJ 1050 To the Max ( 动态规划 二维 最大连续和 最大子矩阵)
    [ACM_搜索] POJ 1096 Space Station Shielding (搜索 + 洪泛算法Flood_Fill)
    [JAVA] java_实例 获得系统字体
    [JAVA] java仿windows 字体设置选项卡
    [JAVA] 一个可以编辑、编译、运行Java简单文件的记事本java实现
    [ACM_模拟] POJ 1094 Sorting It All Out (拓扑排序+Floyd算法 判断关系是否矛盾或统一)
    JS的数组相关知识
    JS的join方法
  • 原文地址:https://www.cnblogs.com/dygood/p/15979345.html
Copyright © 2020-2023  润新知