在"China Azure中部署Kubernetes(K8S)集群"一文中,我们使用的ACS Version及Kubernete Version版本都比较低,ACS Version为0.8.0,Kubernete Version为1.6。随着ACS版本及Kubernete版本的不断跟新,我们会尽可能的采用新的version部署我们的集群服务。本文将使用 ACS Version为0.18.8,Kubernete Version为1.10.4 进行部署,同时Kubernetes.json的配置文件也加入了多个限制条件,详情操作见下:

1.查看Ubuntu 机器Version

root@hlmubu1604n1ma:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04. LTS
Release: 16.04
Codename: xenial

2.在该Ubuntu机器上安装CLI 2.0

root@hlmubu1604n1ma:~# az

     /\
/ \ _____ _ _ ___ _
/ /\ \ |_ / | | | \'__/ _\
/ ____ \ / /| |_| | | | __/
/_/ \_\/___|\__,_|_| \___| Welcome to the cool new Azure CLI! Use `az --version` to display the current version.
Here are the base commands:

3.下载并安装 Azure 容器服务引擎(acs-engine)

wget https://github.com/Azure/acs-engine/releases/download/v0.18.8/acs-engine-v0.18.8-linux-amd64.tar.gz

tar zxvf acs-engine-v0.18.8-linux-amd64.tar.gz

cd acs-engine-v0.18.8-linux-amd64/

root@hlmubu1604n1ma:~/acs-engine-v0.18.8-linux-amd64# ./acs-engine version
Version: v0.18.8
GitCommit: 71d88da
GitTreeState: clean

4.创建资源组并获取服务主体身份(service principal)

root@hlmubu1604n1ma:~# az cloud set -n AzureChinaCloud
root@hlmubu1604n1ma:~# az login -u "***@***.onmschina.cn"
Password:
[
{
"cloudName": "AzureChinaCloud",
"id": "***",
"isDefault": true,
"name": "He Liming (anitay)",
"state": "Enabled",
"tenantId": "***",
"user": {
"name": "***",
"type": "user"
}
}
]
root@hlmubu1604n1ma:~# az account set --subscription "***"
root@hlmubu1604n1ma:~# az group create -n hlmk8srgt1 -l chinanorth
{
"id": "/subscriptions/***/resourceGroups/hlmk8srgt1",
"location": "chinanorth",
"managedBy": null,
"name": "hlmk8srgt1",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}

root@hlmubu1604n1ma:~# az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/***/resourceGroups/hlmk8srgt1"
Retrying role assignment creation: / 
Retrying role assignment creation: /
Retrying role assignment creation: /
Retrying role assignment creation: /
Retrying role assignment creation: /
Retrying role assignment creation: /
{
"appId": "***",
"displayName": "azure-cli-2018-09-18-07-49-05",
"name": "http://azure-cli-2018-09-18-07-49-05",
"password": "***", "tenant": "***"
} 备注:记录appId及password的值以备后续使用

5.创建一个kubernets.json模板文件

{
"apiVersion": "vlabs",
"location": "chinanorth",
"properties" : {
"orchestratorProfile" : {
"orchestratorType" : "Kubernetes",
"kubernetesConfig" : {
"schedulerConfig" : {
"--profiling" : "false"
},
"enableRbac":false,
"apiServerConfig" : {
"--audit-log-path" : "/var/log/audit.log",
"--audit-log-maxage": "",
"--audit-log-maxsize": "",
"--audit-log-maxbackup": "",
"--anonymous-auth":"false",
"--profiling":"false"
},
"addons": [
{
"name":"tiller",
"enabled":false
},
{
"name":"kubernetes-dashboard",
"enabled":false
},
{
"name":"cluster-autoscaler",
"config": {
"maxNodes":"",
"minNodes":""
},
"enabled":true
}
],
"dnsServiceIP" : "10.2.0.240",
"networkPolicy": "calico",
"kubeletConfig" : {
"--make-iptables-util-chains":"true",
"--allow-privileged":"false",
"--keep-terminated-pod-volumes":"false",
"--read-only-port": "",
"--event-qps": "",
"--cadvisor-port": ""
},
"serviceCidr": "10.2.0.0/24",
"controllerManagerConfig": {
"--terminated-pod-gc-threshold": "",
"--profiling":"false"
}
},
"orchestratorVersion": "1.10.4"
},
"agentPoolProfiles": [
{
"storageProfile": "ManagedDisks",
"name": "macsetupdeve",
"count": ,
"osType": "Linux",
"vnetSubnetId": "/subscriptions/***/resourceGroups/hlmk8st1/providers/Microsoft.Network/virtualNetworks/hlmk8svnet/subnets/default",
"vmSize": "Standard_A2_v2",
"availabilityProfile": "VirtualMachineScaleSets"
}
],
"servicePrincipalProfile": {
"clientId": "***",
"secret": "***"
},
"linuxProfile": {
"adminUsername": "stone",
"ssh": {
"publicKeys": [
{
"keyData": "ssh-rsa *** root@hlmubu1604n1ma"
}
]
}
},
"masterProfile": {
"firstConsecutiveStaticIP": "10.2.0.100",
"storageProfile": "ManagedDisks",
"count": ,
"dnsPrefix": "hlmk8s-mstr000",
"vnetSubnetId": "/subscriptions/***/resourceGroups/hlmk8st1/providers/Microsoft.Network/virtualNetworks/hlmk8svnet/subnets/default",
"vmSize": "Standard_A2_v2"
}
}
} 备注:
clientId为之前记录的appId; secret为之前记录的password; keyData为登陆机器所需的公钥(需要使用ssh-keygen命令生成)

6.生成Azure模板文件

root@hlmubu1604n1ma:~/acs-engine-v0.18.8-linux-amd64# ./acs-engine generate kubernetes.json
INFO[] Generating assets into _output/hlmk8s-mstr001...
root@hlmubu1604n1ma:~/acs-engine-v0.18.8-linux-amd64# ls
acs-engine kubernetes.json kubernetes.json.bak kubernetes.json.bak1 kubernetes.json.bak2 LICENSE _output README.md translations
root@hlmubu1604n1ma:~/acs-engine-v0.18.8-linux-amd64# cd _output/
root@hlmubu1604n1ma:~/acs-engine-v0.18.8-linux-amd64/_output# ls
hlmk8s-mstr000 hlmk8s-mstr001
root@hlmubu1604n1ma:~/acs-engine-v0.18.8-linux-amd64/_output# cd hlmk8s-mstr001/
root@hlmubu1604n1ma:~/acs-engine-v0.18.8-linux-amd64/_output/hlmk8s-mstr001# ls
apimodel.json apiserver.key azuredeploy.parameters.json ca.key client.key etcdclient.key etcdpeer0.key etcdserver.key kubectlClient.crt
apiserver.crt azuredeploy.json ca.crt client.crt etcdclient.crt etcdpeer0.crt etcdserver.crt kubeconfig kubectlClient.key

7.部署Kubernetes集群,该过程大约需要20分钟左右

备注:使用较新的ACS生成的"azuredeploy.parameters.json"文件,不需要修改URL,直接就可以运行

root@hlmubu1604n1ma:~/acs-engine-v0.18.8-linux-amd64/_output/hlmk8s-mstr001# az group deployment create --resource-group hlmk8srgt1 --template-file azuredeploy.json --parameters azuredeploy.parameters.json

8.使用Kubectl工具,并查看集群节点状态

备注:Azure Portal界面显示如下

Azure 部署K8S(二)的更多相关文章

  1. ansible一键部署k8s单机环境

    一.虚拟机准备 干净的Centsot7.4.4G内存.2个CPU 最小化安装,最好带虚拟化 二.执行初始化脚本 注意:脚本中配置静态网卡根据实际网卡名称配置,我用的是ens33 可以用 sed -i ...

  2. 使用saltstack自动部署K8S

    使用saltstack自动部署K8S 一.环境准备 1.1 规划 1. 操作系统 CentOS-7.x-x86_64. 2. 关闭 iptables 和 SELinux. 3. 所有节点的主机名和 I ...

  3. 使用kubeadm部署k8s

    k8s组件 master,node master中包括apiserver,scheduler,controller.etcd apiserver:负责接收用户请求,并且保存至etcd中. schedu ...

  4. 二进制部署k8s

    一.二进制部署 k8s集群 1)参考文章 博客: https://blog.qikqiak.com 文章: https://www.qikqiak.com/post/manual-install-hi ...

  5. 解决阿里云ECS下kubeadm部署k8s无法指定公网IP

    背景 一般情况下,"kubeadm"部署集群时指定"--apiserver-advertise-address=<public_ip>"参数,即可在 ...

  6. lvs+keepalived部署k8s v1.16.4高可用集群

    一.部署环境 1.1 主机列表 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 lvs-keepal ...

  7. Centos7.6部署k8s v1.16.4高可用集群(主备模式)

    一.部署环境 主机列表: 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 master01 7.6. ...

  8. 使用RKE快速部署k8s集群

    一.环境准备 1.1环境信息 IP地址 角色 部署软件 10.10.100.5 K8s Master Etcd.Control 10.10.100.17 K8s Worker1 Worker 10.1 ...

  9. 使用kubeadm部署k8s集群[v1.18.0]

    使用kubeadm部署k8s集群 环境 IP地址 主机名 节点 10.0.0.63 k8s-master1 master1 10.0.0.63 k8s-master2 master2 10.0.0.6 ...

随机推荐

  1. 14.Longest Common Prefix (String)

    Write a function to find the longest common prefix string amongst an array of strings. class Solutio ...

  2. unity3d开发实战《啪啪三国》技术详解!

     去年11月,上海火溶网络CEO王伟峰以其第一款3d手游产品<啪啪三国>为例,着重讲解了unity3D手机网游开发的经验,其中涉及了团队组成.人员要求.常见的unity3d开发遇到的坑及解 ...

  3. UNITY5 为什么Inspector视图中脚本前面的勾选框没了

    结果发现了一个奇葩的问题..凡事脚本没有勾选项的,都是因为你的脚本没有Start方法..如果你想让勾选框显示出来,把如下方法加入即可,不信你可以试试.嘿嘿.

  4. Magic Potion(最大流,跑两遍网络流或者加一个中转点)

    Magic Potion http://codeforces.com/gym/101981/attachments/download/7891/20182019-acmicpc-asia-nanjin ...

  5. Golang之一个简单的聊天机器人

    翠花,上代码 package main import ( "bufio" "fmt" "os" "strings" ) ...

  6. CentOS 7如何开放其它的端口,比如8080

    CentOS 7如何开放其它的端口,比如8080 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop ...

  7. 5 CrawlSpider操作

    CrawlSpider 提问:如果想要通过爬虫程序去爬取"糗百"全站数据新闻数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Reques ...

  8. Linux gcc支持的语法 __attribute__ 属性设置

    __attribute__实际上是gcc专有的一种语法,是用来设置函数属性.变量属性.类属性的 语法:之前在C中的结构体对齐中提到过,当时是用来告诉编译器这个结构体的对齐方式 ,其实他还有很多种用法, ...

  9. 如何讓 iOS UIWebView 連線時傳送自訂 Cookie 的方法[转]

    利用 NSHTTPCookieStorage 管理 Cookie 傳送 在 iOS 中如果自行建立 UIWebView 來開啟遠端站台資料,這時可以透過以下方法加入 Cookie.原理是透過 iOS ...

  10. EBS 并发程序运行信息

    --并发程序运行信息SELECT REQUEST_ID,       PROGRAM,       actual_start_date 开始日期,       ACTUAL_COMPLETION_DA ...