设为首页 收藏本站
查看: 1538|回复: 0

[经验分享] China Azure中部署Kubernetes(K8S)集群

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2018-1-4 22:56:56 | 显示全部楼层 |阅读模式
  目前China Azure还不支持容器服务(ACS),使用名称“az acs create --orchestrator-type Kubernetes -g zymtest -n kubertest001 --generate-ssh-keys”尝试创建,会提示如下报错:
  

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>-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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-431714-1-1.html 上篇帖子: 基于Kubernetes(k8s)的RabbitMQ 集群 下篇帖子: 二、安装并配置Kubernetes Master节点
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表