V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
firefox12
V2EX  ›  分享创造

# 5 分钟安装一个高可用三中心节点的 kubernetes 系统

  •  
  •   firefox12 · 2018-12-13 14:48:51 +08:00 · 2699 次点击
    这是一个创建于 2171 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有任何安装问题 可以在这里给我留言, 或者加入 qq 778526002 群提问 谢谢!

    下载网址: https://github.com/xiaojiaqi/k8seasy_release_page

    大家好,今天我向大家安利一款软件,这款软件是 kubernetes 的安装软件。 它的名字叫 k8seasy. 你可以从 https://github.com/xiaojiaqi/k8seasy_release_page 下载这款软件。

    这款软件是一款 kubernetes 的安装软件, 也就是说用这款软件 你可以很容易地把一个 kubernetes 系统搭建起来,而且是 3 节点的高可用系统。完全可以使用在生产环境里。

    说到 kubernetes,大家都很熟悉了,这是一款 google 出品的容器编排的软件。但是要安装 kubernetes 实在是太困难 太复杂了,虽然它自带了一款安装程序,但是在中国的互联网环境里,我只想说实在是根本不能用啊。官方的安装程序需要下载很多镜像,速度慢,经常失败,各种安装失败的问题在论坛里比比皆是,而且如果你想搭建高可用的生产环境,想利用二进制安装服务,目前还是做不到的。所以这款 k8seasy 软件就是来解决大家的痛点。

    优点

    先说说这款软件的优点

    • 第一 它完全不需要配置,一键完成,包括集群也是一键生成。

    • 第二 不需要下载任何镜像,所有需要的模块组件都已经帮你准备好了,你只需要安装一下就可以了。

    • 第三 完美支持了 centos 7 以后版本 ubutun16.04 18.04 版本。覆盖了绝大多数的系统。

    • 第四 它已经内置了最常用的镜像 比如 dashboard 和 cordns heapster, 内部的监控已经完成,直接可以使用。

    • 第五 它安装所有的组件是以系统服务方式安装,以后启动停止都非常简单。

    • 最后 支持最新的 kubernetes 的版本 从 1.10.11 1.11.5 到 1.12.3,可以让大家第一时间 体验到最新的软件

    • 最后提示一下 k8seasy 对外部的要求 只有一点,它要求主机需要有一个 IP 在 192.168.1.0 - 192.168.10.0 这 10 个子网里,这是因为 kubernetes 的证书是预先生成的。所以证书只覆盖了这个区域。

    首先我们打开下载中百度网盘链接,我们可以看到这 3 个版本,它们分别对应 kubernetes 的 1.10.11 1.11.5 1.12.3 这 3 个版本。

    github 网页 image

    网页下部的下载链接

    image

    百度网盘中可选择的版本 image

    我们以 1.11.5 为例 演示 2 个案例

    案例一 在本机安装一个完整的 kubernetes

    在这一个案例里,我们将作下面的演示,在一台主机上使用 k8seasy 安装一套 kubernetes 以及 dashboard 然后登录 dashboard, 最后再完美的删除掉它。

    首先我们下载 k8seasy 的安装包,大概 1.5G, 包括了所有的镜像。好了,启动以前查看一下 网络设备,只有 lo eth0 eth1,并没有 kubernetes 的组件存在。所以系统是干净的

    image

    同时我们可以看到这是一台 centos 的主机,版本是 7.5。 好了 我们要开始安装了,安装的命令是什么呢? 一句话

    sudo ./installer --install

    就是这么简单,然后你可以看到,所有安装好的组件名称都会列在上面,然后一个功能完整的集群就安装好了,就这么简单。

    好了完成了,大概 1 分钟。 一个完整的 kubernetes 已经装好了。 我们运行 . /etc/profile 重新加载一下环境变量。

    image
    我们利用 kubectl 命令查看一下,

    kubectl get nodes

    你可以看到一个 master node 的集群已经建立好了, 主节点版本是 1.11.5.

    image

    现在我们需要查看一下 dashboard,看看它是否运行正常。 首先 在 k8seasy 的目录里多了一个文件 dashboard.kubeconfig 文件,这个就是登录 dashboard 的凭证。

    image

    将它下载下来,然后运行

    kubectl get services kubernetes-dashboard -n kube-system

    命令,我们可以从输出看到,dashboard 目前正在主机 9638 端口侦听。

    image

    现在我们利用浏览器 访问 https://192.168.3.11:9638 这个端口,因为证书的原因,我们需要先允许使用这个例外.

    image

    好了出现登录界面了。我们选择刚才的凭证。登录成功。

    image

    好了一切尽在掌控。 我们可以查看整个系统。这个系统可以用来学习,开发 kubernetes, 一切都非常简便。

    image

    当我们不需要它的使用,请使用

    sudo ./installer --uninstall

    image

    一切都被删除干净了,所有的服务都删除了,网络也恢复到一开始的状况,就这么简单

    案例 2 在多个节点上安装一个多节点高可用的系统

    现在我们开始第二个案例 单机作为学习是够了,但是要作为生产环境还是不够的。现在我们演示三节点高可用系统的搭建,然后再演示如何不断加入新的节点到这个集群里 。

    首先我准备了 4 台虚拟主机,它们的 ip 分别是 192.168.3.10,192.168.3.11,192.168.3.14,192.168.3.17.

    image

    • 在安装以前我们需要选择 3 台主机,作为系统的主节点,这里我选择 192.168.3.10, 192.168.3.11, 192.168.3.14 这 3 台主机作为主节点。当有业务来的时候,这 3 台主机会互为备份为外部提供服务。
    • 其次需要为 3 个主机准备一个虚拟 IP, 虚拟 IP 是系统高可用的核心原理,它不属于任何一个节点,但是它可以漂浮在 3 台主机上,如果某台主机发生故障,它就会自动漂移到健康的节点上,这样就实现了高可用。这里我们选择 192.168.3.250 做为虚拟 ip.请注意 虚拟 IP 不能和现有的 IP 冲突。
    • 为每台主机选择虚拟 IP 绑定的设备,这里都是 eth1.

    在运行安装以前,还需要在每台主机上运行

    sudo ./installer --prepare

    这样就好了。 然后在 3 台主机上同时运行一样的命令。

    sudo ./installer --intall --masterip=192.168.3.11,192.168.3.10,192.168.3.14 --virtualip=192.168.3.250 --virtualipInterface=eth1

    其中 masterip 就是指 3 台虚拟主机的地址,virtualip 就是浮动 ip, 而 virtualipInterface 就是主机使用的网络设备。

    在同一个集群安装,masterip ,virtualip 这 2 个安装参数必须是一样的。

    image

    稍加等待,一个系统就安装好了。

    我们利用 kubectl 命令查看一下节点情况,

    kubectl get nodes

    image

    kubectl get services kubernetes-dashboard -n kube-system

    命令,我们可以从输出看到,dashboard 目前正在主机 9553 端口侦听。

    image

    现在我们利用浏览器 访问 https://192.168.3.10:9553 ,和刚才类似,使用 dashboard.kubeconfig 凭证,登录进系统。

    image

    登录进去以后 ,你就能发现,3 个节点已经被完全管理起来了。

    可以这样认为,一个三节点的高可用 kubernetes 已经搭建成功了。可是这并不够,我们还需要将其他的节点不断的加入这个集群,我们该怎么做呢?

    很简单,在其他的主机节点上运行几乎完全一样的命令

    sudo ./installer --intall --masterip=192.168.3.11,192.168.3.10,192.168.3.14 --virtualip=192.168.3.250

    image

    安装完成了,再次检查一下节点状态,新节点已经在集群里了。

    image

    再次进入监控,我们可以发现新节点也在集群里。所以任务完成

    image

    最后希望你提出宝贵意见,你可以在 [email protected] , https://github.com/xiaojiaqi/k8seasy_release_page, 以及 QQ 群:778526002 给出反馈。让我们把它变得更好。

    binbinyouliiii
        1
    binbinyouliiii  
       2018-12-13 23:55:11 +08:00
    会装不会用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2799 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 12:55 · PVG 20:55 · LAX 04:55 · JFK 07:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.