转载:https://www.cnblogs.com/magictwt/p/8638014.html  


目前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的模版之前有几个准备工作需要确认

  1. 确认ACS Engine目前支持的版本,当然你若不填写,默认会安装最新版本

  2. SSH的公钥,若没有SSH公钥,运行ssh-keygen -t rsa -b 2048 并拷贝~/.ssh/id_rsa.pub,cat id_rsa.pub 得到公钥,一会儿复制到K8S的模版中

  3. 修改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分钟左右即可完成部署

利用ACS Engine创建Kubernetes集群_第1张图片

部署完成后我们来看看集群节点的状态

export KUBECONFIG=kubeconfig/kubeconfig.chinanorth.json

kubectl get nodes

利用ACS Engine创建Kubernetes集群_第2张图片

我们再进入网页看下K8S的portal

kubectl proxy

在浏览器里输入 http://127.0.0.1:8001/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/#!/node?namespace=default

利用ACS Engine创建Kubernetes集群_第3张图片

 

在Azure上创建K8S集群就完成了,是不是非常方便快速呢~

转载:https://www.cnblogs.com/magictwt/p/8638014.html