zoukankan      html  css  js  c++  java
  • Azure 部署K8S(二)

    在"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.5 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: 1/36 
    Retrying role assignment creation:
    2/36
    Retrying role assignment creation:
    3/36
    Retrying role assignment creation:
    4/36
    Retrying role assignment creation:
    5/36
    Retrying role assignment creation:
    6/36
    {
    "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": "30",
                   "--audit-log-maxsize": "100",
                   "--audit-log-maxbackup": "10",
                   "--anonymous-auth":"false",
                   "--profiling":"false"
                },
               "addons": [  
                   {  
                     "name":"tiller",
                     "enabled":false
                   },
                   {  
                    "name":"kubernetes-dashboard",
                      "enabled":false
                   },
                   {  
                      "name":"cluster-autoscaler",
                      "config":                  {  
                         "maxNodes":"10",
                         "minNodes":"2"
                      },
                      "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": "0",
                   "--event-qps": "0", 
                   "--cadvisor-port": "0"
                },
                "serviceCidr": "10.2.0.0/24",
                "controllerManagerConfig": {  
                   "--terminated-pod-gc-threshold": "5000",
                   "--profiling":"false"
                }
              },             
             "orchestratorVersion": "1.10.4"
          },
          "agentPoolProfiles": [  
             {  
                "storageProfile": "ManagedDisks",
                "name": "macsetupdeve",
                "count": 2,
                "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": 1,
             "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[0000] 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界面显示如下

  • 相关阅读:
    基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。
    Configuration system failed to initialize
    WebException 请求被中止: 操作超时
    The underlying connection was closed: The connection was closed unexpectedly.
    无法将数据写入传输连接: 在一个非套接字上尝试了一个操作
    C# .NET UDP 形式调用 graylog,gelf
    python3存入redis是bytes
    python commands模块在python3.x被subprocess取代
    subprocess
    nginx重新编译添加ssl模块
  • 原文地址:https://www.cnblogs.com/stonehe/p/9672120.html
Copyright © 2011-2022 走看看