目前K8S已然是容器编排领域的事实标准了,在Azure上如何简单快速的搭建和部署呢?
下面我们就来通过ACS Engine来试试吧,看多长时间可以帮助用户搭建一套K8S集群。
首先安装Azure CLI,三个平台均支持,安装链接如下:
https://docs.azure.cn/zh-cn/cli/install-azure-cli?view=azure-cli-latest
根据不同的平台安装对应版本的CLI。
进入CLI后运行如下命令:(注意:复制如下命令时可能会因为""的中英文或全半角问题导致命令执行不成功,请修改成英文"")
az cloud set -n AzureChinaCloud //切换至中国Azure区域
az login //按照提示内容登录
az account list
az account set --subscription "dbf4a1eb-b792-4d82-a20f-544046bd26a8"
az group create -n yujunk8scluster -l chinanorth //创建资源组
az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/dbf4a1eb-b792-4d82-a20f-544046bd26a8/resourceGroups/yujunk8scluster" //自动赋权
{
"appId": "20c6093b-95cf-4790-bb2f-9bcdb5ce374d",
"displayName": "azure-cli-2018-03-23-16-13-15",
"name": "http://azure-cli-2018-03-23-16-13-15",
"password": "a07bb02e-aed0-4e0e-8b55-6946c3ce4d86",
"tenant": "c8e577a6-1171-44ad-984a-176d2a34112b"
}
一定要记住以上信息,特别是APPID以及Password,后面需要使用
下载ACS Engine(可以下载Windows, Linux及MAC版本,这里以Linux为例,版本也在不断更新,若小伙伴们做实验可以看下是否有新版本发布https://github.com/Azure/acs-engine/releases)
wget https://github.com/Azure/acs-engine/releases/download/v0.14.4/acs-engine-v0.14.4-li
nux-amd64.tar.gz
tar -zxvf acs-engine-v0.14.4-linux-amd64.tar.gz
cd acs-engine-v0.14.4-linux-amd64
下载一个K8S的Json模版
wget https://raw.githubusercontent.com/Azure/acs-engine/master/examples/kubernetes.json
在编辑K8S的模版之前有几个准备工作需要确认
- 确认ACS Engine目前支持的版本,当然你若不填写,默认会安装最新版本
- SSH的公钥,若没有SSH公钥,运行ssh-keygen -t rsa -b 2048 并拷贝~/.ssh/id_rsa.pub,cat id_rsa.pub 得到公钥,一会儿复制到K8S的模版中
- 修改Location参数,即你需要部署的区域名称
接下来就可以nano kubernetes.json
{
"apiVersion": "vlabs",
"location":"chinanorth", //部署集群的区域
"properties": {
"orchestratorProfile": {
"orchestratorType": "Kubernetes"
},
"masterProfile": {
"count": 1,
"dnsPrefix": "yujunk8s", //名称
"vmSize": "Standard_DS13" //VM型号
},
"agentPoolProfiles": [
{
"name": "agentpool1", //agent集群名称
"count": 4, //agent数量
"vmSize": "Standard_DS13", //VM型号
"availabilityProfile": "AvailabilitySet"
}
],
"linuxProfile": {
"adminUsername": "yujun", // Linux用户名
"ssh": {
"publicKeys": [
{
"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzJ5ADwSgoCet2SaOkBYtaMOipvjZB/P5XBP+EeFurljTyRubQYPPBJ/RDn+05SXRinSUOMcmx59BLzvIqP9H7pUnB+braIA4AI9QDF0g98Ud5kVBMFRQhMmADc0GKo2fNn0qoRiiyDihUuO5O6SlIOLsURuu3AIRzmmopIESES14b3FaXurjzrvTjdPsErWPHHDJbJBuDr8cSYNtXXv+beEYWURZBB9xVYTDT/YiNzOYcNQ/WvQt6dsFKXme+LC6HsID5DU41JIDLO7kL1BP/8akTl4Ghm6I/mqGGzFeLkz7nBL0DlEXn2Lx212qtOR1IPfwlq2D4oOQWfoB7oKo3 root@YujunXu" //id_rsa.pub key
}
]
}
},
"servicePrincipalProfile": {
"clientId": "65325438-be4c-4bf5-afd4-f675709b4254", // appid
"secret": "ddf5c0f2-0033-47de-8ed5-4120c4004bb1" //password
}
}
}
可以基于我上面的模版更改。
注意:若不清楚账号内哪些型号的VM可以使用,用az vm list-skus -l chinanorth --output table 查询当前区域可用VM型号
接下来就需要用ACS engine生成可以在Azure平台运行的ARM模版及K8S的资源及配置文件
./acs-engine generate kubernetes.json
等执行完成后进入_output目录
cd _output/yujunk8s/
然后就可以根据这些模版和配置文件在Azure上部署K8S集群了
az group deployment create --name yujunk8sdeploy --resource-group k8scluster --template-file azuredeploy.json --parameters "@./azuredeploy.parameters.json"
若没有报错,等10分钟左右即可完成部署
部署完成后我们来看看集群节点的状态
export KUBECONFIG=kubeconfig/kubeconfig.chinanorth.json
kubectl get nodes
我们再进入网页看下K8S的portal
kubectl proxy
在浏览器里输入 http://127.0.0.1:8001/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/#!/node?namespace=default
在Azure上创建K8S集群就完成了,是不是非常方便快速呢~