热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ubuntu20.04集群部署microk8s

最近由于我一个学习群里的大佬过于卷.所以没办法,只能强迫自己跟着学习提升下自己的能力.于是乎就打算先学学k8s,但是传统的k8s过于复杂.为了方便.就选择了micro-k8s,结合

最近由于我一个学习群里的大佬过于卷.所以没办法,只能强迫自己跟着学习提升下自己的能力.

于是乎就打算先学学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即可看到系统信息





原文链接:https://www.cnblogs.com/dygood/p/15979345.html



推荐阅读
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • 嵌入式处理器的架构与内核发展历程
    本文主要介绍了嵌入式处理器的架构与内核发展历程,包括不同架构的指令集的变化,以及内核的流水线和结构。通过对ARM架构的分析,可以更好地理解嵌入式处理器的架构与内核的关系。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
author-avatar
啥也不会
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有