az group create -n hlmrgk8sssd02 -l chinanorth
#创建服务主体并将其权限赋予特定的资源组,该资源组将用户创建K8S的所有Azure资源,以下生成的appId是后面“kubernetes.json”模板中的ClientID,password为Secret
az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/******/resourceGroups/hlmrgk8sssd02"
a.下载一个Kubernetes的示例集群模板:wget https://www.gsm-guard.net/Azure/acs-engine/master/examples/kubernetes.json
{
"apiVersion": "vlabs",
"location": "chinanorth", #指定K8S集群节点机器的部署问题,China Azure中的可选项为“chinanorth”或“chinaeast”
"properties": {
"orchestratorProfile": {
"orchestratorType": "Kubernetes",
"orchestratorRelease": "1.6"
},
"masterProfile": {
"count": , #master节点机器的默认数量
"dnsPrefix": "hlmnk8s03", #master节点机器的DNS名称前缀,同时也是_output目录下生成新目录的名称
"vmSize": "Standard_DS2" #master节点机器的尺寸大小
},
"agentPoolProfiles": [
{
"name": "agentpool3",
"count": , #agent节点机器的默认数量
"vmSize": "Standard_DS2_v2", #agent节点机器的尺寸大小
"availabilityProfile": "AvailabilitySet"
}
],
"linuxProfile": {
"adminUsername": "hlmstone", #节点机器的登陆用户名
"ssh": {
"publicKeys": [
{
"keyData": "ssh-rsa ******" #连接节点机器的ssh公钥
}
]
}
},
"servicePrincipalProfile": {
"clientId": "******", #创建服务主体时生产的“appId”
"secret": "******" #创建服务主体时生产的“password”
}
}
}
c.生成Azure模板
#确认使用的acs-engine版本是正确的,我们使用的为v0.8.0
./acs-engine version
Version: v0.8.0
GitCommit:
GitTreeState: clean
#生产Azure模板,执行完成后你会发现一个 _output 目录,其中包括 ARM 模板以及 Kubernetes 的证书,配置文件等。
./acs-engine generate kubernetes.json
INFO[] Generating assets into _output/hlmnk8s03...
cd _output/hlmnk8s03/
ls
apimodel.json apiserver.crt apiserver.key azuredeploy.json azuredeploy.parameters.json ca.crt ca.key client.crt client.key kubeconfig kubectlClient.crt kubectlClient.key
d.编辑修改部分模板参数信息,切换到模板目录_output/yourprefix,编辑azuredeploy.parameters.json。替换其中部分值如下:
【在笔者测试阶段,为了在Azure中国区部署成功,部分模板参数需要做调整,在后续的开发中,这部分配置可能会被修正】
cd _output/hlmnk8s03/
vi azuredeploy.parameters.json
#修改“kubernetesHyperkubeSpec” 的值为:www.gsm-guard.net:/google_containers/hyperkube-amd64:v1.6.11
#修改“dockerEngineDownloadRepo” 的值为:https://www.gsm-guard.net/docker-engine/apt/repo
#修改“kubernetesTillerSpec” 的值为:www.gsm-guard.net:/kubernetes-helm/tiller:v2.6.1
6.部署Kubernetes集群,该过程大约需要20分钟左右,其中包括创建Azure资源如VNET,负载均衡,自定义路由,虚拟机,存储账号等,并配置虚拟机中kubernetes各组件和服务
az group deployment create --resource-group hlmrgk8sssd02 --template-file azuredeploy.json --parameters azuredeploy.parameters.json
7.使用Kubectl工具,设置kubeconfig配置文件,并查看集群节点状态
a.如果没有安装Kubectl工具,可以运行以下命令进行安装
curl -LO https://www.gsm-guard.net/kubernetes-release/release/$(curl -s https://www.gsm-guard.net/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin
b.设置kubeconfig配置文件,并查看集群节点状态
export KUBECONFIG=kubeconfig/kubeconfig.chinaeast.json
kubectl get nodes
参考链接:
https://www.gsm-guard.net/blog/429
https://www.gsm-guard.net/en-us/articles/azure-operations-guide/virtual-machines/linux/aog-virtual-machines-linux-container-service-deploy-kubernetes-via-acs-engine
-->