日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

8. 管理クラスタを導入します

寄稿者 kevin-hoke このページの PDF をダウンロード

Anthos 解決策の一部として導入された Kubernetes クラスタは、作成した Anthos 管理ワークステーションからすべて導入されます。ユーザは、 SSH 、前の手順で作成した公開鍵、および VM 導入の終了時に指定した IP アドレスを使用して、管理ワークステーションにログインします。管理クラスタは、 Anthos 環境ですべての処理を制御します。管理クラスタを先に導入してから、特定のワークロードのニーズに応じて個々のユーザクラスタを導入することができます。

注記 静的を使用するクラスタを導入する手順はいくつかあります IP アドレス "こちらをご覧ください"、および DHCP を使用する環境の手順については、を参照してください 。このガイドでは、導入を容易にするために 2 つ目の手順を使用します。

管理クラスタを導入するには、次の手順を実行します。

  1. 導入の最後に表示された SSH コマンドを使用して、管理者ワークステーションにログインします。認証に成功したら、ホームディレクトリ内のファイルを表示できます。このファイルは、あとで管理クラスタと追加のクラスタの作成に使用されます。このディレクトリには、前述の手順で作成した、コピーした vCenter cert と Anthos のアクセスキーも含まれます。

    [user@rhel7 anthos-install]$ ssh -i ~/.ssh/gke-admin-workstation ubuntu@10.63.172.10
    
    Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 5.4.0-1001-gkeop x86_64)
    
     * Documentation:  https://help.ubuntu.com
     * Management:     https://landscape.canonical.com
     * Support:        https://ubuntu.com/advantage
    Last login: Fri Jan 29 15:46:35 2021 from 10.249.129.216
    
    ubuntu@gke-admin-200915-151421:~$ ls
    admin-cluster.yaml
    user-cluster.yaml
    vcenter.pem
    component-access-key.json
  2. scp を使用して、管理ワークステーションを導入したワークステーションから Anthos アカウントの残りのキーをコピーします。

    ubuntu@gke-admin-200915-151421:~$ scp user@rhel7:~/anthos-install/connect-register-key.json ./
    ubuntu@gke-admin-200915-151421:~$ scp user@rhel7:~/anthos-install/connect-agent-key.json  ./
    ubuntu@gke-admin-200915-151421:~$ scp user@rhel7:~/anthos-install/logging-monitoring-key.json ./
  3. admin-cluster.yaml ファイルを編集し、導入環境に固有のファイルにします。ファイルは非常に大きいため、セクションごとに対応します。

    1. ほとんどの情報は 'gkeadm によって管理ワークステーションを配備するために使用される構成に基づいてデフォルトで入力されています最初のセクションでは、導入する Anthos のバージョンと vCenter インスタンスの情報を確認します。また、 Kubernetes オブジェクトデータ用にローカルデータディスク( VMDK )を定義することもできます。

      apiVersion: v1
      kind: AdminCluster
      # (Required) Absolute path to a GKE bundle on disk
      bundlePath: /var/lib/gke/bundles/gke-onprem-vsphere-1.6.0-gke.7-full.tgz
      # (Required) vCenter configuration
      vCenter:
        address: anthos-vc.cie.netapp.com
        datacenter: NetApp-HCI-Datacenter-01
        cluster: NetApp-HCI-Cluster-01
        resourcePool: Anthos-Resource-Pool
        datastore: VM_Datastore
        # Provide the path to vCenter CA certificate pub key for SSL verification
        caCertPath: "/home/ubuntu/vcenter.pem"
        # The credentials to connect to vCenter
        credentials:
          username: administrator@vsphere.local
          password: "vSphereAdminPassword"
        # Provide the name for the persistent disk to be used by the deployment (ending
        # in .vmdk). Any directory in the supplied path must be created before deployment
        dataDisk: "admin-cluster-disk.vmdk"
    2. 次の「ネットワーク」セクションに入力し、静的モードと DHCP モードのどちらを使用しているかを選択します。静的アドレスを使用する場合は、上記のリンク先の手順に基づいて IP ブロックファイルを作成し、構成ファイルに追加する必要があります。

      注記 配置で静的 IP が使用されている場合、ホスト構成の項目はグローバルです。これには、クラスタの静的 IP や、後で設定する Seesaw ロードバランサに使用される IP が含まれます。
      # (Required) Network configuration
      network:
      # (Required) Hostconfig for static addresseses on Seesaw LB's
        hostConfig:
          dnsServers:
          - "10.61.184.251"
          - "10.61.184.252"
          ntpServers:
          - "0.pool.ntp.org"
          - "1.pool.ntp.org"
          - "2.pool.ntp.org"
          searchDomainsForDNS:
          - "cie.netapp.com"
        ipMode:
          # (Required) Define what IP mode to use ("dhcp" or "static")
          type: dhcp
          # # (Required when using "static" mode) The absolute or relative path to the yaml file
          # # to use for static IP allocation
          # ipBlockFilePath: ""
        # (Required) The Kubernetes service CIDR range for the cluster. Must not overlap
        # with the pod CIDR range
        serviceCIDR: 10.96.232.0/24
        # (Required) The Kubernetes pod CIDR range for the cluster. Must not overlap with
        # the service CIDR range
        podCIDR: 192.168.0.0/16
        vCenter:
          # vSphere network name
          networkName: VM_Network
    3. 次に、ロードバランサーのセクションに入力します。これは導入するロードバランサのタイプによって異なります。

      シーソーの例:

      loadBalancer:
        # (Required) The VIPs to use for load balancing
        vips:
          # Used to connect to the Kubernetes API
          controlPlaneVIP: "10.63.172.155"
          # # (Optional) Used for admin cluster addons (needed for multi cluster features). Must
          # # be the same across clusters
          # # addonsVIP: "10.63.172.153"
        # (Required) Which load balancer to use "F5BigIP" "Seesaw" or "ManualLB". Uncomment
        # the corresponding field below to provide the detailed spec
        kind: Seesaw
        # # (Required when using "ManualLB" kind) Specify pre-defined nodeports
        # manualLB:
        #   # NodePort for ingress service's http (only needed for user cluster)
        #   ingressHTTPNodePort: 0
        #   # NodePort for ingress service's https (only needed for user cluster)
        #   ingressHTTPSNodePort: 0
        #   # NodePort for control plane service
        #   controlPlaneNodePort: 30968
        #   # NodePort for addon service (only needed for admin cluster)
        #   addonsNodePort: 31405
        # # (Required when using "F5BigIP" kind) Specify the already-existing partition and
        # # credentials
        # f5BigIP:
        #   address:
        #   credentials:
        #     username:
        #     password:
        #   partition:
        #   # # (Optional) Specify a pool name if using SNAT
        #   # snatPoolName: ""
        # (Required when using "Seesaw" kind) Specify the Seesaw configs
        seesaw:
        # (Required) The absolute or relative path to the yaml file to use for IP allocation
        #  for LB VMs. Must contain one or two IPs.
        ipBlockFilePath: "admin-seesaw-block.yaml"
        #   (Required) The Virtual Router IDentifier of VRRP for the Seesaw group. Must
        #   be between 1-255 and unique in a VLAN.
          vrid: 100
        #   (Required) The IP announced by the master of Seesaw group
          masterIP: "10.63.172.151"
        #   (Required) The number CPUs per machine
          cpus: 1
        #   (Required) Memory size in MB per machine
          memoryMB: 2048
        #   (Optional) Network that the LB interface of Seesaw runs in (default: cluster
        #   network)
          vCenter:
        #   vSphere network name
            networkName: VM_Network
        #   (Optional) Run two LB VMs to achieve high availability (default: false)
          enableHA: false
    4. Seesaw ロードバランサの場合は、ロードバランサの静的 IP 情報を提供する追加の外部ファイルを作成する必要があります。この設定セクションで参照されている 'admin-seesaw-block.yaml ファイルを作成します

      blocks:
        - netmask: "255.255.255.0"
          gateway: "10.63.172.1"
          ips:
          - ip: "10.63.172.152"
            hostname: "admin-seesaw-vm"

      F5 BigIP の例:

      # (Required) Load balancer configuration
      loadBalancer:
        # (Required) The VIPs to use for load balancing
        vips:
          # Used to connect to the Kubernetes API
          controlPlaneVIP: "10.63.172.155"
          # # (Optional) Used for admin cluster addons (needed for multi cluster features). Must
          # # be the same across clusters
          # # addonsVIP: "10.63.172.153"
        # (Required) Which load balancer to use "F5BigIP" "Seesaw" or "ManualLB". Uncomment
        # the corresponding field below to provide the detailed spec
        kind: F5BigIP
        # # (Required when using "ManualLB" kind) Specify pre-defined nodeports
        # manualLB:
        #   # NodePort for ingress service's http (only needed for user cluster)
        #   ingressHTTPNodePort: 0
        #   # NodePort for ingress service's https (only needed for user cluster)
        #   ingressHTTPSNodePort: 0
        #   # NodePort for control plane service
        #   controlPlaneNodePort: 30968
        #   # NodePort for addon service (only needed for admin cluster)
        #   addonsNodePort: 31405
        # # (Required when using "F5BigIP" kind) Specify the already-existing partition and
        # # credentials
        f5BigIP:
          address: "172.21.224.21"
          credentials:
            username: "admin"
            password: "admin-password"
          partition: "Admin-Cluster"
        #   # # (Optional) Specify a pool name if using SNAT
        #   # snatPoolName: ""
        # (Required when using "Seesaw" kind) Specify the Seesaw configs
        # seesaw:
          # (Required) The absolute or relative path to the yaml file to use for IP allocation
          # for LB VMs. Must contain one or two IPs.
          #  ipBlockFilePath: ""
          # (Required) The Virtual Router IDentifier of VRRP for the Seesaw group. Must
          # be between 1-255 and unique in a VLAN.
          #  vrid: 0
          # (Required) The IP announced by the master of Seesaw group
          #  masterIP: ""
          # (Required) The number CPUs per machine
          #  cpus: 4
          # (Required) Memory size in MB per machine
          #   memoryMB: 8192
          # (Optional) Network that the LB interface of Seesaw runs in (default: cluster
          # network)
          #   vCenter:
            # vSphere network name
            #     networkName: VM_Network
          # (Optional) Run two LB VMs to achieve high availability (default: false)
          #   enableHA: false
    5. admin 構成ファイルの最後のセクションには、特定の導入環境に合わせて調整できるオプションがあります。これには、 3 台未満の ESXi サーバに導入する Anthos の場合に非アフィニティグループを有効にすることも含まれます。また、プロキシ、プライベート Docker レジストリ、監査用の Stackdriver および Google Cloud への接続を構成することもできます。

      antiAffinityGroups:
        # Set to false to disable DRS rule creation
        enabled: false
      # (Optional) Specify the proxy configuration
      proxy:
        # The URL of the proxy
        url: ""
        # The domains and IP addresses excluded from proxying
        noProxy: ""
      # # (Optional) Use a private Docker registry to host GKE images
      # privateRegistry:
      #   # Do not include the scheme with your registry address
      #   address: ""
      #   credentials:
      #     username: ""
      #     password: ""
      #   # The absolute or relative path to the CA certificate for this registry
      #   caCertPath: ""
      # (Required): The absolute or relative path to the GCP service account key for pulling
      # GKE images
      gcrKeyPath: "/home/ubuntu/component-access-key.json"
      # (Optional) Specify which GCP project to connect your logs and metrics to
      stackdriver:
        projectID: "anthos-dev"
        # A GCP region where you would like to store logs and metrics for this cluster.
        clusterLocation: "us-east1"
        enableVPC: false
        # The absolute or relative path to the key file for a GCP service account used to
        # send logs and metrics from the cluster
        serviceAccountKeyPath: "/home/ubuntu/logging-monitoring-key.json"
      # # (Optional) Configure kubernetes apiserver audit logging
      # cloudAuditLogging:
      #   projectid: ""
      #   # A GCP region where you would like to store audit logs for this cluster.
      #   clusterlocation: ""
      #   # The absolute or relative path to the key file for a GCP service account used to
      #   # send audit logs from the cluster
      #   serviceaccountkeypath: ""
      注記 このドキュメントで説明する配置は、非アフィニティルールを無効にする必要がある検証のための最小構成です。本番環境では、このオプションを true のままにしておくことを推奨します。
    注記 VMware 上の Anthos では、デフォルトで Google 所有の既存のコンテナイメージレジストリが使用されますが、これには追加のセットアップは必要ありません。配置にプライベート Docker レジストリを使用する場合は、の手順に基づいてレジストリを個別に設定する必要があります "こちらをご覧ください"。この手順は、この導入ガイドでは説明していません。
  4. admin-cluster.yaml ファイルの編集が完了したら、構文と間隔が正しいことを確認してください。

    ubuntu@gke-admin-200915-151421:~$ gkectl check-config –config admin-cluster.yaml
  5. 構成チェックにパスし、見つかった問題が解決されたら、クラスタの導入をステージングできます。設定ファイルの検証をすでに確認しているので '--skip-validation-all ' フラグを渡して ' これらの手順を省略できます

    ubuntu@gke-admin-200915-151421:~$ gkectl prepare --config admin-cluster.yaml --skip-validation-all
  6. シーソーロードバランサを使用している場合は、クラスタ自体を導入する前にロードバランサを作成する必要があります(使用しない場合はこの手順をスキップします)。

    ubuntu@gke-admin-200915-151421:~$ gkectl create loadbalancer --config admin-cluster.yaml
  7. 管理クラスタを起動できるようになります。これは '--skip-validation-all フラグを使用して展開を高速化できる 'gkectl create 'admin コマンドで実行します

    ubuntu@gke-admin-200915-151421:~$ gkectl create admin --config admin-cluster.yaml --skip-validation-all
  8. クラスタを導入すると、ローカルディレクトリに kubeconfig ファイルが作成されます。このファイルは、 kubectl を使用してクラスタのステータスをチェックするか、 gkectl を使用して診断を実行します。

    ubuntu@gke-admin-ws-200915-151421:~ $ kubectl get nodes --kubeconfig kubeconfig
    NAME                                     STATUS   ROLES    AGE    VERSION
    gke-admin-master-gkvmp                   Ready    master   5m    v1.18.6-gke.6600
    gke-admin-node-84b77ff5c7-6zg59          Ready    <none>   5m    v1.18.6-gke.6600
    gke-admin-node-84b77ff5c7-8jdmz          Ready    <none>   5m    v1.18.6-gke.6600
    ubuntu@gke-admin-ws-200915-151421:~$ gkectl diagnose cluster –-kubeconfig kubeconfig
    Diagnosing admin cluster "gke-admin-gkvmp"...- Validation Category: Admin Cluster VCenter
    Checking Credentials...SUCCESS
    Checking Version...SUCCESS
    Checking Datacenter...SUCCESS
    Checking Datastore...SUCCESS
    Checking Resource pool...SUCCESS
    Checking Folder...SUCCESS
    Checking Network...SUCCESS- Validation Category: Admin Cluster
    Checking cluster object...SUCCESS
    Checking machine deployment...SUCCESS
    Checking machineset...SUCCESS
    Checking machine objects...SUCCESS
    Checking kube-system pods...SUCCESS
    Checking storage...SUCCESS
    Checking resource...System pods on UserMaster cpu resource request report: total 1754m nodeCount 2 min 877m max 877m avg 877m tracked amount in bundle 4000m
    System pods on AdminNode cpu resource request report: total 2769m nodeCount 2 min 1252m max 1517m avg 1384m tracked amount in bundle 4000m
    System pods on AdminMaster cpu resource request report: total 923m nodeCount 1 min 923m max 923m avg 923m tracked amount in bundle 4000m
    System pods on UserMaster memory resource request report: total 4524461824 nodeCount 2 min 2262230912 max 2262230912 avg 2262230912 tracked amount in bundle 8192Mi
    System pods on AdminNode memory resource request report: total 6876Mi nodeCount 2 min 2174Mi max 4702Mi avg 3438Mi tracked amount in bundle 16384Mi
    System pods on AdminMaster memory resource request report: total 465Mi nodeCount 1 min 465Mi max 465Mi avg 465Mi tracked amount in bundle 16384Mi
    SUCCESS
    Cluster is healthy.