• This repository has been archived on 06/Apr/2024
  • Stars
    star
    121
  • Rank 293,924 (Top 6 %)
  • Language
    Shell
  • License
    Apache License 2.0
  • Created about 6 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

AWS中国宁夏区域/北京区域,快速Kops部署K8S集群

English README

免责说明

建议测试过程中使用此方案,生产环境使用请自行考虑评估。
当您对方案需要进一步的沟通和反馈后,可以联系 [email protected] 获得更进一步的支持。
欢迎联系参与方案共建和提交方案需求, 也欢迎在 github 项目issue中留言反馈bugs。

重要通知

随着EKS在China区域的推出,本项目逐步停止维护,计划于2020年10月31日关闭本项目,相关镜像文件将删除。
各位可参考新项目container-mirror使用相关镜像。
即日起,本项目镜像地址有变更,由937788672844.dkr.ecr.cn-north-1.amazonaws.com.cn变更为048912060910.dkr.ecr.cn-north-1.amazonaws.com.cn

kops-cn项目介绍

本项目用于指导客户使用开源自动化部署工具Kops在AWS宁夏区域或北京区域搭建K8S集群。 本项目已经将K8S集群搭建过程中需要拉取的镜像或文件拉回国内,因此您无需任何翻墙设置。

特性

  • 集群创建过程中所需的docker镜像已存放在 北京 区域的Amazon ECR中。
  • 集群创建过程中所需的二进制文件或配置文件已存放在 北京 区域的Amazon S3桶中 。
  • 简单快速的集群搭建和部署
  • 无需任何VPN代理或翻墙设置
  • 如有新的Docker镜像拉取需求,您可以创建Github push or pull request,您的request会触发CodeBuild(buildspec-nwcd.yml) 去拉取镜像并存放到AWS cn-north-1 的ECR中。查看: 镜像列表.
  • 一个make create-cluster命令即可创建集群

当前版本

现仅提供1.15版本

主版本 Kops最新版本 K8s搭配版本 AMI
1.15 1.15.2(#118) 1.15.10 kope.io/k8s-1.12-debian-stretch-amd64-hvm-ebs-2019-05-13(#96

步骤

  1. 下载项目到本地
$ git clone https://github.com/nwcdlabs/kops-cn
$ cd kops-cn
  1. 在本机安装kops and kubectl命令行客户端: 安装指导

您也可以直接从以下链接的AWS中国区域的S3桶中下载 kops and kubectl 的二进制文件:

kops_version='1.15.2'
k8s_version='v1.15.10'
#
# for Linux Environment
#
# download kops for linux
$ curl -L https://s3.cn-northwest-1.amazonaws.com.cn/kops-file/fileRepository/kops/$kops_version/linux/amd64/kops -o kops
$ chmod +x $_

# download kubectl for linux
$ curl -L https://s3.cn-northwest-1.amazonaws.com.cn/kops-file/fileRepository/kubernetes-release/release/$k8s_version/bin/linux/amd64/kubectl -o kubectl
$ chmod +x $_

#
# for Mac OS X Environment
#

# download kops for mac os x
$ curl -L https://s3.cn-northwest-1.amazonaws.com.cn/kops-file/fileRepository/kops/$kops_version/darwin/amd64/kops -o kops
$ chmod +x $_

# download kubectl for mac os x
$ curl -L https://s3.cn-northwest-1.amazonaws.com.cn/kops-bjs/fileRepository/kubernetes-release/release/$k8s_version/bin/darwin/amd64/kubectl -o kubectl
$ chmod +x $_


#
# 将kops与kubectl放到$PATH
#
$ sudo mv ./kops /usr/local/bin/
$ sudo mv ./kubectl /usr/local/bin/

#
# 再次确认kops and kubectl是当前稳定版本
#
$ kops version
$ kubectl version

请注意

如果你之前安装过kops客户端或者曾经升级了kops,请再次使用kops version确认kops客户端是否为最新稳定版本,版本不一致可能会造成功能上的问题。

  1. 编辑 Makefile文件. 您需要设置如下变量
Name Description values
TARGET_REGION 选择将集群部署在aws北京或宁夏区域 cn-north-1 or cn-northwest-1
AWS_PROFILE 选择制定其他不同的AWS_PROFILE default
KOPS_STATE_STORE 您需要提供一个S3桶给KOPS存放配置信息 s3://YOUR_S3_BUCKET_NANME
VPCID 选择将您的集群部署在哪个VPC中 vpc-xxxxxxxx
MASTER_COUNT master节点的机器数量 3 (建议不要修改)
MASTER_SIZE master节点的机器类型
NODE_SIZE 工作节点的机器类型
NODE_COUNT 工作节点的机器数量
SSH_PUBLIC_KEY 本地ssh公钥的存放路径(或参考这里生成一个新的公钥) ~/.ssh/id_rsa.pub [default]
KUBERNETES_VERSION 指定kubernetes版本 (建议不要修改)
KOPS_VERSION 指定kops版本 (建议不要修改)
  1. 创建集群
make create-cluster
  1. 编辑集群
make edit-cluster

spec-nwcd.yml 中内容贴到spec 下并保存退出。

  1. 更新集群
make update-cluster
  1. 完成

验证

集群的创建大概需要 3-5 分钟时间。之后,使用

kops validate cluster

或是

make validate-cluster

来验证集群是否是 ready状态。

查看集群对外接口信息、版本信息

恭喜您已顺利完成!

最后,您可以这样删除整个集群资源

make delete-cluster

插件安装

FAQ

目前使用什麼AMI,可以使用其他AMI吗?例如CentoOS, Amazon Linux 2等?

目前缺省AMI使用Debian Linux AMI,也是Kops上游的标准AMI(说明), 然而Kops官方并没有直接发布AMI到cn-west-1 and cn-northwest-1(请大家帮顶一下这个issue), 在官方AMI直接发布到这两个China regions之前,我们手动的把AMI透过这里说明的方式取回北京与宁夏Region,需要特别提醒这AMI并不是官方直接发布,建议大家也可以自行透过上面链接的说明,透过这里查找官方现在对应最新的Debian AMI自行取回国内。

除了Debian Linux之外,其他官方支持的AMI理论上也都支持,但也可能存在一些已知的问题,请参考#91 and #96

集群验证失败?

查看 issue #5

如何SSH上master节点和worker节点 ?

查看 issue #6, 需要注意Debian AMI ssh方式为 ssh admin@IP

我可以把master nodes运行在private subnet吗?如何配置?

参考这个说明:#94

我需要的docker镜像在ECR中不存在.

aws北京区域ECR中的镜像仓库containerRegistry 中的已有镜像见required-images-mirrored.txt, (參考#105)如您在集群创建过程中需要其他镜像, 请您编辑 required-images.txt ,这将会在您的GitHub账户中 fork 一个新的分支,之后您可以提交PR(pull request)。 Merge您的PR会触发CodeBuild 去拉取 required-images.txt 中定义的镜像回ECR库。 数分钟后,您可以看到图标从in progress变为passing

当前状态:

required-images相关文档用途

filename description
required-images.txt 新的需求镜像可以透过PR来共同编辑记录在这里,触发CD来mirror
required-imags-mirrored.txt 已经mirror完成的镜像列表, 请勿提交PR修改这个文档
required-images-daily.txt 部分image需要每日自动mirror更新一次的清单

如何得知required-images.txt在ECR所对应的完整路径?

参考这里

查看所有FAQs 这里

More Repositories

1

predictive-maintenance-using-machine-learning

为了帮助客户更轻松地利用Amazon SageMaker进行预测性维护,我们提供了使用机器学习的预测性维护解决方案。该解决方案可以帮助自动检测潜在的设备故障,并提供建议采取的措施。另外包括一个示例数据集,但是您可以修改该解决方案以与任何数据集一起使用
Python
23
star
2

scale-out-computing-on-aws-N1

Python
14
star
3

s3-migration-solution-from-bainapu

Python
10
star
4

easy-vpc-peering

在AWS中国不同区域间快速建立VPC之间的互通
Shell
10
star
5

aws-region-info

AWS区域信息记录
9
star
6

aws-instance-scheduler

https://github.com/awslabs/aws-instance-scheduler for AWS(Ningxia) and AWS(Beijing) Regions
Python
8
star
7

cloudfront-prewarm

for cloudfront prewarm
Python
7
star
8

ipsecvpn

site to site vpn tunnel on aws
Shell
7
star
9

s3-mass-migration

S3迁移框架: 可支持跨区域,不同账号
Python
6
star
10

openshift-on-aws-cn

OpenShift on AWS China 最佳实践
Python
6
star
11

serverless-image-handler-N1

Serverless Image Handler for AWS CN Regions
JavaScript
6
star
12

S4HANA_on_AWS_Ningxia

在AWS宁夏区域快速构建SAP S/4 HANA系统
5
star
13

sagemaker_spoken_language_identification

使用AWS sagemaker 实现口语语音分类
Python
4
star
14

sagemaker-ocr-chinese

使用Sagemaker 实现中文ocr模型的训练,并部署为Web服务。
Python
3
star
15

Splunk_for_AWS_China

帮助你利用Splunk 7.20 版本管理AWS 中国宁夏区域和北京区域的资源,账单等
3
star
16

iot-mobile-control-using-cognito

iot-mobile-control-using-cognito
JavaScript
3
star
17

sam-corcheck

AWS SAM 简易体温收集工具演示
JavaScript
3
star
18

iot-device-simulator

AWS offers the IoT Device Simulator solution. This solution provides a web-based graphical user interface (GUI) console that enables customers to create and simulate hundreds of virtual connected devices.
JavaScript
3
star
19

aws-centralized-logging

JavaScript
2
star
20

amazon-listing-helper

跨境电商listing助手
JavaScript
2
star
21

ocr-template-export

导出OCR 识别的模板文件
JavaScript
2
star
22

data-migration-from-ali-or-bjs-to-zhy

Python
2
star
23

aws-billing-customer-notice

Python
1
star
24

timestream-scale-performance

Java
1
star
25

quickstart-mongodb

Shell
1
star
26

sagemaker-with-file-system-data-source

Jupyter Notebook
1
star
27

sagemaker-unbalanced-text-multiclassification

Jupyter Notebook
1
star
28

gcr-spot-workshop

AWS GCR Spot Workshop
1
star
29

glue-demo

1
star
30

ServerlessSubtitleTranslation

Python
1
star
31

textract-boomerang

JavaScript
1
star
32

Enable-Security-Services

The scripts in this solution automate the process of enabling and disabling Amazon GuardDuty and AWS SecurityHub simultaneously across a group of AWS accounts and regions that are in your control.
Python
1
star
33

AWSConnectedVehicleSolution

构建一个可为 AWS 云提供安全车辆连接的架构,以及一个可帮助客户将 AWS IoT 和 AWS Greengrass 集成到车规级 Linux (AGL) 软件堆栈中的框架。
JavaScript
1
star