建议测试过程中使用此方案,生产环境使用请自行考虑评估。
当您对方案需要进一步的沟通和反馈后,可以联系 [email protected] 获得更进一步的支持。
欢迎联系参与方案共建和提交方案需求, 也欢迎在 github 项目issue中留言反馈bugs。
本项目用于指导客户使用开源自动化部署工具Kops在AWS宁夏区域或北京区域搭建K8S集群。 本项目已经将K8S集群搭建过程中需要拉取的镜像或文件拉回国内,因此您无需任何翻墙设置。
- 集群创建过程中所需的docker镜像已存放在 宁夏 或 北京 区域的
Amazon ECR
中。 - 集群创建过程中所需的二进制文件或配置文件已存放在 北京 区域的
Amazon S3
桶中 。 - 简单快速的集群搭建和部署
- 无需任何VPN代理或翻墙设置
- 如有新的Docker镜像拉取需求,您可以创建Github push or pull request,您的request会触发CodeBuild(buildspec.yml) 去拉取镜像并存放到AWS
cn-north-1
的ECR中。查看: 镜像列表.
- 下载项目到本地
$ curl https://github.com/nwcdlabs/kops-cn/archive/master.zip -L -o kops-cn.zip
$ unzip kops-cn
$ cd kops-cn-master
- 在本机安装
kops
andkubectl
命令行客户端: 安装指导
您也可以直接从以下链接的AWS中国区域的S3桶中下载 kops
and kubectl
的二进制文件:
//kops for linux
https://s3.cn-north-1.amazonaws.com.cn/kops-bjs/fileRepository/kops/1.10.0/linux/amd64/kops
//kops for mac os
https://s3.cn-north-1.amazonaws.com.cn/kops-bjs/fileRepository/kops/1.10.0/darwin/amd64/kops
//kubectl for linux
https://s3.cn-north-1.amazonaws.com.cn/kops-bjs/fileRepository/kubernetes-release/release/v1.10.11/bin/linux/amd64/kubectl
//kubectl for mac os
https://s3.cn-north-1.amazonaws.com.cn/kops-bjs/fileRepository/kubernetes-release/release/v1.10.11/bin/darwin/amd64/kubectl
- 编辑
env.config
文件. 您需要设置如下变量
Name | Description | values |
---|---|---|
TARGET_REGION | 选择将集群部署在aws北京或宁夏区域 | cn-north-1 or cn-northwest-1 |
KOPS_STATE_STORE | 您需要提供一个S3桶给KOPS存放配置信息 | s3://YOUR_S3_BUCKET_NANME |
vpcid | 选择将您的集群部署在哪个VPC中 | vpc-xxxxxxxx |
ssh_public_key | 本地ssh公钥的存放路径 | ~/.ssh/id_rsa.pub [default] |
- 创建集群
// 如果客户端存在多个aws profile,需要将中国区域profile明确的export出来:
$ export AWS_PROFILE=bjs
$ source env.config
$ bash create-cluster.sh
- 编辑集群
kops edit cluster $cluster_name
将 spec.yml
中内容贴到spec
下并保存退出。
- 更新集群
kops update cluster $cluster_name --yes
- 完成
集群的创建大概需要 3-5 分钟时间。之后,使用 kops validate cluster
来验证集群是否是 ready
状态。
查看集群对外接口信息、版本信息
恭喜您已顺利完成!
- Helm - https://github.com/nwcdlabs/kops-cn/blob/master/doc/Helm.md
- Istio - https://github.com/nwcdlabs/kops-cn/blob/master/doc/Istio.md
查看 issue #5
查看 issue #6
aws北京区域ECR中的镜像仓库containerRegistry
中的已有镜像见required-images.txt, 如您在集群创建过程中需要其他镜像, 请您编辑 required-images.txt ,这将会在您的GitHub账户中 fork 一个新的分支,之后您可以提交PR(pull request)。 Merge您的PR会触发CodeBuild
去拉取 required-images.txt
中定义的镜像回ECR库。 数分钟后,您可以看到图标从in-progress变为。