在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

使用 Rancher Server 部署本地多借点 K8S 集群

  • 2020-05-25
  • 本文字数:1769 字

    阅读完需:约 6 分钟

使用Rancher Server部署本地多借点K8S集群

当我第一次开始我的 Kubernetes 之旅时,我一直在寻找一种设置本地部署环境的方式。很多人常常会使用 minikube 或 microk8s,这两者非常适合新手在单节点集群环境下进行操作。但当我已经了解了基础知识之后,这两者显然不太够用,我需要进一步寻找能够运行本地多节点集群、与生产环境更相似的平台。为此,我查阅了许多参考资料,最后我找到了 Rancher Server。接下来,我要介绍我是如何设置我的本地 K8S 多节点集群的。

准备 master 节点和 worker 节点的虚拟机


上图显示了集群的架构,一个 master 节点和 3 个 worker 节点。要尝试诸如使用 ingress controller 进行负载均衡、会话保持、host 亲和性等跨节点功能,这是最低的配置。


Rancher Server 的安装并不复杂,它被打包为一个 docker 镜像,并且可以作为一个容器运行。一个节点的基本配置是运行在 Linux 虚拟机上的 docker CE 守护进程。在本例中,我选择使用 Ubuntu 18.04 LTS(具体的节点要求请参考 Rancher 的官方文档:https://rancher.com/docs/rancher/v2.x/en/installation/requirements/)。当我完成第一个 VM 设置时,我直接将其复制到另外三个中。如果你和我的操作一样,可以参考下方两个 tips:



最终,4 个节点都在我的电脑(i5,24G RAM)上启动,并分配以下资源。


  • Master 节点(2 core、4G RAM、Ubuntu 18.04 + Docker CE 18.09) x 1

  • Worker 节点(2 core, 3G RAM, Ubuntu 18.04 + Docker CE 18.09) x 3

在 master 节点上启动 Rancher server

sudo docker run --restart=unless-stopped \  -p 81:80 -p 444:443 rancher/rancher
复制代码


以上命令可以启动 Rancher server 容器,并且将其运行在 master 节点上。默认状态下,nginx ingress controller 会嵌入到 worker 节点中,并且绑定端口 80 和 443。因此我将 Rancger server 发布到端口 81 和 444 或其他端口,以避免端口冲突。

完成 Rancher server 初始设置


首先,使用 master 节点 IP 地址和端口 444 启动 Rancher server 控制台,它会要求设置管理员密码。



接着,确认 worker 节点到达 Rancher server 的 URL。这里为了方便我直接使用 master 节点 IP 地址作为 URL。完成了初始设置后,Rancher server 就可以添加新集群了。

创建一个新的 K8S 集群和 master 节点



因为我想要在本地虚拟机上运行 K8S 集群而不是在云端,所以选择“自定义”的选项(即上方说明为“ From my own existing nodes”),然后新集群的云提供商选项选为“None”。



在 ubuntu 虚拟机上复制并运行 docker 命令来启动 master 节点。一个 master 节点至少要有 etcd 和 control,如果你打算创建一个单节点集群,需要选择所有 3 个角色并更改命令。



运行 docker 命令之后,新节点将显示在 Rancher Server 控制台上,配置这一节点需要花费一些时间,一旦配置完成,状态将变为 active。

创建 worker 节点


对于 worker 节点,我们仅需要在节点选项选择“Worker”角色,然后在 3 个 worker 节点的 Ubuntu 虚拟机上复制并运行 docker 命令。



最后,在我的电脑上多节点集群已经准备就绪。

安装 kubectl 工具来管理新的 K8S 集群

新集群的 Kubernetes 版本时 v1.14.6,你可以在上面的截图内看到。为了更好地将 kubectl 工具版本与集群匹配,在 master 节点上运行以下命令,以安装特定版本:


curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.14.6/bin/linux/amd64/kubectlchmod +x ./kubectlsudo mv ./kubectl /usr/local/bin/kubectl
复制代码


Kubectl 工具需要一个 kubeconfig 文件与集群连接,新集群地 kubeconfig 文件可以在 Rancher Server 的控制台中找到。



复制以上 kubeconfig 文件,并保存为~/.kube/config 文件。随后 kubectl 就能够获取集群信息。



有关 kubectl 的安装和配置可以参考以下连接:



原文链接:

https://medium.com/@kwonghung.yip/setup-local-kubernetes-multi-node-cluster-with-rancher-server-fdb7a0669b5c


2020-05-25 16:391145

评论

发布
暂无评论
发现更多内容

智能合约DAPP软件系统开发

系统开发

年终盘点 | 七年零故障支撑 双11 的消息中间件 RocketMQ,怎么做到的?

阿里巴巴云原生

阿里云 开源 云原生 中间件 消息队列

“懂行”为舟,助互联网驶向“新蓝海”

“懂行人”携手互联网,创造未来无限可能

深入浅出 Go - sync/atomic 源码分析

helbing

Go 语言

未雨绸缪,数据保护之NBU介质备份

华为云开发者联盟

安全 数据 保护

智慧社区服务平台开发,平安小区建设

t13823115967

智慧城市 平安小区

线程池的7种创建方式,强烈推荐你用它...

王磊

Java

原来只想简单看一下String源码,没想到整理了这么多知识点

小Q

Java 学习 编程 面试 string

警惕”被讲故事“ | 读《叙事改变人生》

邓瑞恒Ryan

读书笔记 哲学 创业心态 社会学 世界观

实战排查|为什么遮挡推流摄像头,会导致播放绿屏?

阿里云CloudImagine

音视频 WebRTC RTC bug RTMP

IT民工闲话·点一盏灯

IT民工大叔

成长 IT 传承

六个步骤,从零开始教你搭建基于WordPress的个人博客

华为云开发者联盟

网站 WordPress 搭建

智能警务平台搭建,公安一体化警务实战解决方案

t13823115967

智慧公安 智慧警务系统开发

让你的产品更懂世界:如何提升场景文本识别中的语言模型

华为云开发者联盟

神经网络 文字 语义

iOS面试基础知识 (二)

iOSer

ios 面试

我是如何拿到蚂蚁金服offer?看完2020年Java研发岗复盘经验总结,是时候让面试官懵逼了

比伯

Java 编程 架构 面试 程序人生

3. 搞定收工,PropertyEditor就到这

YourBatman

Spring Framework 类型转换 PropertyEditor

为了SpringBoot提交Tomcat执行,我总结了这么多

996小迁

Java tomcat 架构 springboot

mybatis分页插件如何实现?

田维常

mybatis

JVM的艺术—JAVA内存模型

Java jdk JVM

英特尔正式发布全新一代内存和存储产品

E科讯

Android uni-app 封装原生插件

anyRTC开发者

uni-app android 音视频 跨平台 聊天室

刚刚,阿里云知行动手实验室正式开放公测了

阿里巴巴云原生

阿里云 开发者 云原生 k8s dubbo

《Tensorflow:实战Google深度学习框架》.pdf

田维常

微信昵称可以加雪花了,个性又好看

程序员生活志

工具 微信名 雪花

十一周作业

走走,停停……

实践大于一切!Alibaba最新MySQL性能优化+高可用架构全彩版PDF

Java架构追梦

Java MySQL 学习 架构 面试

tron波场智能合约系统软件开发|tron波场智能合约APP开发

系统开发

记一次网络请求连接超时的事故

AI乔治

Java 架构 HTTP

使用Rancher Server部署本地多借点K8S集群_文化 & 方法_Rancher_InfoQ精选文章