轉載:https://www.cnblogs.com/magictwt/p/8638014.html html
目前K8S已然是容器編排領域的事實標準了,在Azure上如何簡單快速的搭建和部署呢?node
下面咱們就來經過ACS Engine來試試吧,看多長時間能夠幫助用戶搭建一套K8S集羣。linux
首先安裝Azure CLI,三個平臺均支持,安裝連接以下:git
https://docs.azure.cn/zh-cn/cli/install-azure-cli?view=azure-cli-latest github
根據不一樣的平臺安裝對應版本的CLI。web
進入CLI後運行以下命令:(注意:複製以下命令時可能會由於""的中英文或全半角問題致使命令執行不成功,請修改爲英文"")json
az cloud set -n AzureChinaCloud //切換至中國Azure區域api
az login //按照提示內容登陸瀏覽器
az account listapp
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
在Azure上建立K8S集羣就完成了,是否是很是方便快速呢~