写点什么

手把手教你从零开始搭建阿里云 ACK 集群和 Rancher 环境

2020 年 5 月 16 日

手把手教你从零开始搭建阿里云ACK集群和Rancher环境

创建 ACK 集群


  1. 首先从阿里云控制台进入【容器服务】

  2. 点击右上角的【创建 Kubernetes 集群】

  3. 选择【标准托管集群】



  1. 按需求进行配置即可


重要事项!

  1. VPC 网络不要选错,因为一旦选择不可修改,只能重建集群。

  2. 强烈建议勾选【公网访问】。因为如果不勾选,就再也无法从公网访问集群(除非重建集群)。这将导致包括 CloudShell 在内的服务都不可用。

  3. 如果出于安全的考虑,确实不需要公网访问,也建议勾选【公网访问】,之后在自动创建的负载均衡中,停止对公网暴露的监听项,日后有需要还可以随时开启。

  4. 系统推荐选项强烈建议全部勾选,如果此时不勾,以后再开启会非常麻烦。


安装 Rancher


安装 Rancher 可以从以下方式二选一:


  • 新建一台专用于 Rancher 的 ECS 来安装,可参考这篇文章

  • 使用集群刚刚创建的 Worker 节点来安装


然后在要安装 Rancher 的服务器上执行以下脚本:


sudo docker run -d --restart=unless-stopped \-p 9999:443 \-v /var/lib/rancher:/var/lib/rancher \--name rancher-server \rancher/rancher
复制代码


如果你的 Rancher Server 需要从外网访问,则需要对外网暴露 Rancher 服务。


具体操作可以从以下方式二选一:


  • 给所在的 ECS 绑定公网 EIP,同时设置阿里云安全组策略(开放 9999 端口)

  • 使用阿里云 SLB


配置 Rancher


Rancher 可以导入 ACK 集群的前提条件是,集群的 Worker 节点必须可以访问 Rancher Server。不仅可以通过公网访问,也可以通过内网访问 Rancher Server。


达到这一前提条件取决于 Rancher 第一次启动时,你设置的 Rancher Server URL。



请务必确保 Worker 节点到此 URL 的网络是连通的。


该地址与你在网页浏览器中访问 Rancher 的地址,没有必然的关联。Worker 节点将以此处填写的地址连接 Rancher,但你依然使用公网域名/IP 在浏览器中来访问 Rancher。


在 Rancher 中导入 ACK 集群


  1. 进入 Rancher,点击【Add Cluster】

  2. 选择【Import existing cluster】



  1. 然后你将看到如下图的页面,只需将最后一行命令复制,然后在 kubectl 中执行即可。



执行 kubectl


由于创建集群时,勾选了【公网访问】,所以只需要在 CloudShell 中执行就可以。



但是注意,由于刚刚设置的 Rancher Server URL 为内网地址,所以生成的导入命令是这样的:


curl --insecure -sfL https://10.0.148.20:9999/v3/import/8fq8pd9tlbmms5cv84wbvl6xcsdtddr8lhvwxm6f5vmtph56xd52jt.yaml | kubectl apply -f -
复制代码


10.0.148.20 是我的内网地址,CloudShell 无法访问,所以需要将命令中的这个地址改为公网地址。但通过公网地址访问上述 YAML 时,其中的 ServerURL 也会变成公网。(如此 Worker 节点就是通过公网 IP 来连接 Rancher 了)


但我们希望 Worker 节点通过内网 IP 来连接 RancherServer(速度更快且不需要流量),所以需要做以下处理。


1.先将 YAML 下载到 CloudShell 本地:


curl --insecure -sfL https://公网IP:9999/v3/import/8fq8pd9tlbmms5cv84wbvl6xcsdtddr8lhvwxm6f5vmtph56xd52jt.yaml > rancher.yaml
复制代码


2.然后在 CloudShell 中,将文件中的公网 IP 替换为局域网 IP。



3.然后手工导入:


kubectl apply -f rancher.yaml
复制代码



4.回到 Rancher,可以看到刚刚创建的集群,Etcd 和 Nodes 状态已经正常。



但 Controller Manager 和 Scheduler 的状态始终为不正常。经过与阿里云客服确认,由于我们创建的是 ACK 托管版集群,集群的 Master 节点并不可见,所以实际是获取不到 Controller Manager 和 Scheduler 的状态,所以此处实际没有问题,可以忽略。


之后,就可以正常使用 Rancher 了。


创建静态 PVC 和动态 StorageClass


使用阿里云云盘作静态 PVC



NAS 作动态 StorageClass



使用阿里云 OSS 做静态 PVC



使用阿里云集群的优势


在此之前,我们团队一直是使用 ECS 自建集群。在一番评估之后,最终迁移到了阿里云的托管集群,主要考虑到以下几个优势。


与 Pod 网络互通


托管集群,VPC 网络与 Pod 网络是互通的。这意味着,在 ECS 机器里即可 ping 通 Pod IP。如此,只需要在 ECS 主机上,搭建一个 VPN,我们在连入 VPC 网络的同时,也连入了 Pod 网络。这对于开发调试而言,十分方便。此外,还可以使用阿里云的付费 VPN 网关功能,配置更简单。


扩容方便,且支持自动扩缩容


集群的自动伸缩,和容器的 HPA 功能,可以让集群和应用根据实际使用情况,自动进行扩容和缩容。这极大的解放了运维人员,节假日再也不需要为了扩容紧张值班了!


便捷使用云盘、NAS、OSS 作为 StorageClass


可直接使用云盘作为 PVC,这极大方便了 IO 性能敏感的应用(例如 DB)。OSS 则可作为存储成本非常低廉的方式,并且可以极大缩减我们管理 OSS 文件的成本。


自动接入阿里云日志系统


只需要在界面上进行简单地配置,就可以便捷的将容器日志接入阿里云日志系统。方便事后搜索、查看、分析日志,再也不需要担心日志把硬盘内存占满了。


原文


2020 年 5 月 16 日 17:16739

评论

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

Netty 源码解析(七): NioEventLoop 工作流程

猿灯塔

Mac效率配置指南

Winann

macos 效率 效率工具 Mac

一杯茶的时间,上手 Docker

图雀社区

node.js react.js Docker

你必须了解的产品经济学

Yanel 说敏捷产品

产品 产品经理 产品设计 产品开发 产品推荐

变化在加速,你的机会和挑战在哪里?

Yanel 说敏捷产品

产品 产品经理 产品设计 产品开发 产品推荐

学会用"云—雨—伞"引导敏捷实践

Yanel 说敏捷产品

敏捷 敏捷开发

企业经营 "造物" "造人" "造钱"三阶段

Yanel 说敏捷产品

敏捷 敏捷开发

扎心!天天写代码,方向真的对吗?

Apache Flink

大数据 flink 流计算 实时计算 大数据处理

Panzoid:一款超好用的片头制作工具

千锤百炼锅

学习 产品 效率工具 工具 产品推荐

创新真的可遇不可求么?

Yanel 说敏捷产品

产品经理 产品设计 产品开发 产品推荐

DIY 可用性测试

Yanel 说敏捷产品

产品 产品经理 产品设计 测试 产品推荐

流量的战场,如何做裂变?

Yanel 说敏捷产品

产品 产品经理 产品设计 产品开发 产品推荐

权限系统设计的一种解法

双城笔录

产品 总结 产品设计

"深刻创新"八步法

Yanel 说敏捷产品

产品 产品经理 产品设计 产品开发 产品推荐

如何度量敏捷开发团队

Yanel 说敏捷产品

敏捷 敏捷开发

写文章的目的是什么?

小天同学

思考 写作 感悟 表达

人生需要做减法:少即是多

我心依然

程序员 人生 减法 少即是多 less is more

一个英语渣的自救手册

寇云

学习 效率工具 程序员人生 工作效率

《通往财富自由之路》——day1

轩呀

得到

道德和正确的认知

沈传宁

信息安全 计算机道德

JAVA小抄-001-Retrofit初级使用

NoNoGirl

retrofit okhttp

谨防常见的一些数据误区

Yanel 说敏捷产品

产品 产品经理 产品设计 产品开发 产品推荐

你懂什么是"结对测试"么?

Yanel 说敏捷产品

产品 产品经理 产品设计 产品开发 产品推荐

不安全的“安全密码”

沈传宁

信息安全 口令安全

去中心化网络,不止区块链(一)

石君

区块链 去中心 去中心化网络 DHT

做一个"靠谱"的敏捷教练

Yanel 说敏捷产品

敏捷 敏捷开发

从"远程工作"到"分布式团队"

Yanel 说敏捷产品

项目管理 敏捷 敏捷开发

系统的安全性设计

Janenesome

读书笔记 程序员 架构 安全

吾谈教育

ItsFitz

[MySQL-InnoDB] Buffer pool 并发控制

ba0tiao

MySQL 数据库 innodb

粗糙的草稿编辑成文章的五个步骤

七镜花园-董一凡

写作

手把手教你从零开始搭建阿里云ACK集群和Rancher环境-InfoQ