Giter VIP home page Giter VIP logo

kops-cn's Introduction

English README

免责说明

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

kops-cn项目介绍

本项目用于指导客户使用开源自动化部署工具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中。查看: 镜像列表.
  • 一个make create-cluster命令即可创建集群

当前版本

kops-cn专案保持跟上游kops专案版本一致, 上游最新的kops版本可以在kubernetes/kops/releases/latest查看, 而kops对应的建议k8s版本,则可以从stable channels查看。

目前提供1.13 and 1.14两个主要版本提供选择,default是1.14, 但也可以指定使用1.13.

README文件最后一次更新时间所对应的稳定版本是:

主版本 Kops最新版本 K8s搭配版本 AMI
1.13 1.13.0(#101) 1.13.10 kope.io/k8s-1.12-debian-stretch-amd64-hvm-ebs-2019-05-13(#96
1.14 1.14.0(#114) 1.14.6 kope.io/k8s-1.12-debian-stretch-amd64-hvm-ebs-2019-05-13(#96

步骤

  1. 下载项目到本地
$ curl  https://github.com/nwcdlabs/kops-cn/archive/master.zip -L -o kops-cn.zip
$ unzip kops-cn
$ cd kops-cn-master
  1. 在本机安装kops and kubectl命令行客户端: 安装指导

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

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

# download kubectl for linux
$ curl -L https://s3.cn-north-1.amazonaws.com.cn/kops-bjs/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-north-1.amazonaws.com.cn/kops-bjs/fileRepository/kops/$kops_version/darwin/amd64/kops -o kops
$ chmod +x $_

# download kubectl for mac os x
$ curl -L https://s3.cn-north-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.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

如何使用最新的Kops 1.13?

Kops上游已经relaese 1.13版本, 目前已经验证可以运行在北京与宁夏Region,请参考这个说明(#101)直接在make命令前指定版本即可,请注意,Kops client客户端也要升级到相应的版本,可以用

kops version

来验证客户端版本。

我需要的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 这里

kops-cn's People

Contributors

pahud avatar skrieger82 avatar seimutig avatar xmubeta avatar missingcharacter avatar yujunz avatar jansony1 avatar sunfuze avatar totorochina avatar jhaohai avatar zhangquanhao avatar yizhizoe avatar walkley avatar fromthebridge avatar alyanli avatar satchinjoshi avatar jonkeyguan avatar dean205 avatar bigdrum avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.