NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

使用 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:39713

评论

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

Android | Tangram动态页面之路(一)需求背景

哈利迪

android

spring注入bean的几种策略模式

王德发

Java Spring Boot 测试驱动开发实战营

太赞了,VSCode 上也能画流程图了!

GitHubDaily

visual-studio GitHub 程序员 vscode 开发者工具

Java实现Base64

Java

MySQL索引知识介绍

Simon

MySQL 索引结构

为什么我喜欢的大V拉黑我?

lmymirror

经历 后真相时代 日常思考

何时开始重构?

Page

敏捷开发 重构

2020 敏捷产品基本盘

Yanel 说敏捷产品

产品 敏捷 产品设计 产品推荐

用"结构性张力"构建自驱力

Yanel 说敏捷产品

团队管理 敏捷 团队协作 项目

近期工作的几点感想

Leiy

app退出登录

看完这篇操作系统,和面试官扯皮就没问题了

cxuan

操作系统 计算机基础

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (七)CORRECT边界条件

编程道与术

Java 编程 软件测试 TDD 单元测试

Intellij IDEA2020.x如何安装Lombok插件

龙眼果

开发者工具

真的!只需 “六步” 实现图像特定物体识别!!!

周果

Python OpenCV 计算机视觉 图像识别 物体检测

多多益善的MacOS文件管理方案

陈东泽 EuryChen

macos Mac apple 提升效率 文件管理

从ClickHouse的名字由来讲起

nauu

数据库 大数据 分布式 OLAP Clickhouse

KK日知录20200515

kimmking

学习型组织的修炼之道

Yanel 说敏捷产品

团队管理 项目管理 敏捷 团队协作 组织转型

MySQL备份基础

一个有志气的DB

MySQL 数据

常见的主从报错集锦

一个有志气的DB

MySQL 主从配置 主从同步

敏捷团队成员的工作量指标真的那么重要吗?

金生水起

敏捷开发 Scrum精髓 敏捷精髓 Agile

搜商:高效的使用搜索引擎

石云升

高效搜索 搜索技巧 搜商

【大咖说问大咖】关于开源的那些事 —— PingCAP CTO 黄东旭 Q&A 交流帖

InfoQ写作社区官方

开源 写作平台 大咖说 技术交流 热门活动

提升编程效率:重构

Page

高效工作 敏捷开发 重构 高效

Serverless: 2020年函数计算的冷启动怎么样了

刘宇

工程师、程序员和产品经理

王泰

程序员 产品经理 IT 软件工程师 工程师思维

Kafka零数据丢失的配置方案

奈学教育

kafka kafka配置 kafka数据

数据分析的利器-clickhouse概述

流沙

数据库 Clickhouse

BVR 才是变革的核心

Yanel 说敏捷产品

团队管理 项目管理 敏捷 敏捷开发 敏捷精髓

【Howe学爬虫】全国统计用区划代码爬取

Howe

Java 爬虫

揭秘!开源软件背后的神秘组织

Apache Flink

大数据 flink 流计算 实时计算

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