简介
手动在AWS中国区部署K8s可谓是非常煎熬,很多镜像在国内显示404,通过下面的方法可以在5分钟内快速的在AWS中国区配置K8s,太感谢kops-cn的作者了。
安装kops
1
2
3
| curl -Lo kops https://github.com/kubernetes/kops/releases/download/1.15.0/kops-linux-amd64
chmod +x ./kops
sudo mv ./kops /usr/local/bin/
|
下载地址可替换为:https://s3.cn-northwest-1.amazonaws.com.cn/kops-file/fileRepository/kops/1.15.2/linux/amd64/kops
安装kubectl
1
2
3
| curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.15.10/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
|
下载地址可替换为:https://s3.cn-northwest-1.amazonaws.com.cn/kops-file/fileRepository/kubernetes-release/release/v1.15.10/bin/linux/amd64/kubectl
确认版本
1
2
| kops version
kubectl version
|
这里会输出:
1
2
3
4
| Version 1.15.0 (git-9992b4055)
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.10", GitCommit:"1bea6c00a7055edef03f1d4bb58b773fa8917f11", GitTreeState:"clean", BuildDate:"2020-02-11T20:13:57Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.10", GitCommit:"1bea6c00a7055edef03f1d4bb58b773fa8917f11", GitTreeState:"clean", BuildDate:"2020-02-11T20:05:26Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"linux/amd64"}
|
安装 aws cli 并进行配置
1
2
| pip install awscli
aws configure
|
在AWS管理台
1.在AWS管理台创建一个VPC,并附加他的互联网网关,记录下这里的新创建VPC ID
2.在S3中创建一个新的桶,记录下S3桶的名字
使用kops-cn配置集群
1
2
| git clone https://github.com/nwcdlabs/kops-cn
cd kops-cn
|
编辑 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 (需要为奇数数字,修改为1稳定性低,建议不要修改) |
MASTER_SIZE |
master节点的机器类型 |
t3.medium |
NODE_SIZE |
工作节点的机器类型 |
t3.small |
NODE_COUNT |
工作节点的机器数量 |
4 |
SSH_PUBLIC_KEY |
本地ssh公钥的存放路径(或参考这里生成一个新的公钥) |
~/.ssh/id_rsa.pub [default] |
创建集群
1
2
3
4
| make create-cluster
make edit-cluster
# 将 kops-cn/spec-nwcd.yml 中内容贴到spec 下
make update-cluster
|
验证
附加
- 注意每个节点max-pods数量:
https://github.com/aws/amazon-vpc-cni-k8s/blob/f52ad45/README.md
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI
- 使用nwcdlabs提供的container-mirror可以便捷的使用更多的国内404的镜像,非常非常感谢他。(注意使用下面的webhook时,在未收录的镜像仓库中的镜像前要加
direct.to/
,更多说明访问: nwcdlabs/container-mirror )
1
2
3
4
| # 应用 webhook
kubectl apply -f https://raw.githubusercontent.com/nwcdlabs/container-mirror/master/webhook/mutating-webhook.yaml
# 删除 webhook
kubectl delete -f https://raw.githubusercontent.com/nwcdlabs/container-mirror/master/webhook/mutating-webhook.yaml
|