China Azure中部署Kubernetes(K8S)集群
2017-11-27 15:42
786 查看
目前China Azure还不支持容器服务(ACS),使用名称“az acs create --orchestrator-type Kubernetes -g zymtest -n kubertest001 --generate-ssh-keys”尝试创建,会提示如下报错:
可以采用类似本地部署K8S的方法在Azure平台部署Kubernete,如下为笔者整理的在Azure VM中部署K8S的方法,仅供大家参考:
1.部署一台Linux虚拟机,如下以Ubuntu16.04为例进行说明
2.需要在该VM上安装Azure CLI 2.0
3.下载并安装 Azure 容器服务引擎(acs-engine) 【建议在Ubuntu 16.04 中使用acs-engine 0.8.0进行部署,该系统版本是经过测试的较稳定版本】
4.创建资源组并获取服务主体身份(service principal)
5.生成模板
a.下载一个Kubernetes的示例集群模板:wget https://raw.githubusercontent.com/Azure/acs-engine/master/examples/kubernetes.json
b.编辑下载的模板,以下带有注释行信息需要进行添加或根据实际情况进行修改:
c.生成Azure模板
d.编辑修改部分模板参数信息,切换到模板目录_output/yourprefix,编辑azuredeploy.parameters.json。替换其中部分值如下:
【在笔者测试阶段,为了在Azure中国区部署成功,部分模板参数需要做调整,在后续的开发中,这部分配置可能会被修正】
6.部署Kubernetes集群,该过程大约需要20分钟左右,其中包括创建Azure资源如VNET,负载均衡,自定义路由,虚拟机,存储账号等,并配置虚拟机中kubernetes各组件和服务
7.使用Kubectl工具,设置kubeconfig配置文件,并查看集群节点状态
a.如果没有安装Kubectl工具,可以运行以下命令进行安装
b.设置kubeconfig配置文件,并查看集群节点状态
参考链接:https://school.azure.cn/blog/429
C:\Users\Administrator>az acs create --orchestrator-type Kubernetes -g zymtest -n kubertest001 --generate-ssh-keys Created SSH key files: C:\Users\Administrator\.ssh\id_rsa,C:\Users\Administrator\.ssh\id_rsa.pub Deployment failed. Correlation ID: df080d87-80c7-4b89-9f19-42eaf87d5a3c. {00.0000% - Starting .. "error": { "code": "InvalidResourceNamespace", "message": "The resource namespace 'Microsoft.ContainerService' is invalid." } }
可以采用类似本地部署K8S的方法在Azure平台部署Kubernete,如下为笔者整理的在Azure VM中部署K8S的方法,仅供大家参考:
1.部署一台Linux虚拟机,如下以Ubuntu16.04为例进行说明
2.需要在该VM上安装Azure CLI 2.0
3.下载并安装 Azure 容器服务引擎(acs-engine) 【建议在Ubuntu 16.04 中使用acs-engine 0.8.0进行部署,该系统版本是经过测试的较稳定版本】
wget https://github.com/Azure/acs-engine/releases/download/v0.8.0/acs-engine-v0.8.0-linux-amd64.tar.gz tar zxvf acs-engine-v0.8.0-linux-amd64.tar.gz cd acs-engine-v0.8.0-linux-amd64/
4.创建资源组并获取服务主体身份(service principal)
#设置China Azure环境 az cloud set -n AzureChinaCloud #随后输入账户密码 az login -u "***@***.partner.onmschina.cn" #设置即将操作资源的订阅,该处填写的为订阅ID az account set --subscription "******" #创建资源组 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" { "appId": "******", "displayName": "azure-cli-2017-11-27-02-24-31", "name": "http://azure-cli-2017-11-27-02-24-31", "password": "******", "tenant": "******" }
5.生成模板
a.下载一个Kubernetes的示例集群模板:wget https://raw.githubusercontent.com/Azure/acs-engine/master/examples/kubernetes.json
b.编辑下载的模板,以下带有注释行信息需要进行添加或根据实际情况进行修改:
{ "apiVersion": "vlabs", "location": "chinanorth", #指定K8S集群节点机器的部署问题,China Azure中的可选项为“chinanorth”或“chinaeast” "properties": { "orchestratorProfile": { "orchestratorType": "Kubernetes", "orchestratorRelease": "1.6" }, "masterProfile": { "count": 1, #master节点机器的默认数量 "dnsPrefix": "hlmnk8s03", #master节点机器的DNS名称前缀,同时也是_output目录下生成新目录的名称 "vmSize": "Standard_DS2" #master节点机器的尺寸大小 }, "agentPoolProfiles": [ { "name": "agentpool3", "count": 2, #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: 79572455 GitTreeState: clean #生产Azure模板,执行完成后你会发现一个 _output 目录,其中包括 ARM 模板以及 Kubernetes 的证书,配置文件等。 ./acs-engine generate kubernetes.json INFO[0000] 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” 的值为:crproxy.trafficmanager.net:6000/google_containers/hyperkube-amd64:v1.6.11 #修改“dockerEngineDownloadRepo” 的值为:https://mirror.kaiyuanshe.cn/docker-engine/apt/repo #修改“kubernetesTillerSpec” 的值为:crproxy.trafficmanager.net:6000/kubernetes-helm/tiller:v2.6.1
6.部署Kubernetes集群,该过程大约需要20分钟左右,其中包括创建Azure资源如VNET,负载均衡,自定义路由,虚拟机,存储账号等,并配置虚拟机中kubernetes各组件和服务
az group deployment create -g hlmrgk8sssd02_deploy --resource-group hlmrgk8sssd02 --template-file azuredeploy.json --parameters azuredeploy.parameters.json
7.使用Kubectl工具,设置kubeconfig配置文件,并查看集群节点状态
a.如果没有安装Kubectl工具,可以运行以下命令进行安装
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/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://school.azure.cn/blog/429
相关文章推荐
- China Azure中部署Kubernetes(K8S)集群
- Kubernetes(K8S)集群管理Docker容器(部署篇)
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)
- Kubernetes(K8S)集群管理Docker容器(部署篇) 推荐
- Kubernetes(三) - 使用Rancher部署K8S集群(搭建Kubernetes)
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)
- Kubernetes1.91(K8s)安装部署过程(三)--创建高可用etcd集群
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录
- k8s集群之kubernetes-dashboard和kube-dns组件部署安装
- Kubernetes(二) - 使用Rancher部署K8S集群(搭建Rancher)
- Centos7安装部署Kubernetes(K8s)集群
- Kubernetes(K8S)集群管理Docker容器(部署篇)
- 使用kubeadm部署k8s集群07-扩容kube-scheduler到3节点
- k8s集群部署DNS服务发现
- [k8s]jenkins配合kubernetes插件实现k8s集群构建的持续集成
- 基于TLS证书手动部署kubernetes集群(上)
- kubernetes集群calico网络部署
- 在阿里云上部署生产级别Kubernetes集群