Compare languages | Cloud provider — GCP: Layouts

Two layouts are supported. Below is more information about each of them.

Поддерживаются две схемы размещения. Ниже подробнее о каждой их них.

Standard

Standard

  • A separate VPC with Cloud NAT is created for the cluster.
  • Nodes in the cluster do not have public IP addresses.
  • Public IP addresses can be allocated to master and static nodes:
  • In this case, one-to-one NAT is used to translate the public IP address to the node’s IP address (note that CloudNAT is not used in such a case).
  • If the master does not have a public IP, then an additional instance with a public IP (aka bastion host) is required for installation tasks and accessing the cluster.
  • Peering can also be configured between the cluster VPC and other VPCs.
  • Для кластера создается отдельная VPC с Cloud NAT.
  • Узлы в кластере не имеют публичных IP-адресов.
  • Публичные IP-адреса можно назначить на статические и master-узлы:
  • При этом будет использоваться One-to-One NAT для отображения публичного IP-адреса в IP-адрес узла (следует помнить, что CloudNAT в этом случае использоваться не будет).
  • Если master не имеет публичного IP-адреса, для установки и доступа в кластер необходим дополнительный инстанс с публичным IP-адресом (например, bastion-хост).
  • Между VPC кластера и другими VPC можно настроить пиринговое соединение.

resources

resources

Example of the layout configuration:

Пример конфигурации схемы размещения:

yaml apiVersion: deckhouse.io/v1 kind: GCPClusterConfiguration layout: Standard standard: Optional, compute address names from this list are used as addresses for Cloud NAT. cloudNATAddresses:

  • example-address-1
  • example-address-2 subnetworkCIDR: 10.0.0.0/24 # Required. peeredVPCs:

yaml apiVersion: deckhouse.io/v1 kind: GCPClusterConfiguration layout: Standard standard: Необязательный параметр. Адреса из этого списка будут использованы для адресации Cloud NAT. cloudNATAddresses:

  • example-address-1
  • example-address-2 subnetworkCIDR: 10.0.0.0/24 # Обязательный параметр.

Optional, list of GCP VPC Networks with which Kubernetes VPC Network will be peered.

  • default sshKey: “" # Required. labels: kube: example masterNodeGroup: replicas: 1 zones: # Optional.
  • europe-west4-b instanceClass: machineType: n1-standard-4 # Required. image: projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20190911 # Required. diskSizeGb: 20 # Optional, local disk is used if not specified. disableExternalIP: false # Optional, by default master has externalIP. additionalNetworkTags: # Optional.
  • tag1 additionalLabels: # Optional. kube-node: master nodeGroups:
  • name: static replicas: 1 zones: # Optional.
  • europe-west4-b instanceClass: machineType: n1-standard-4 # Required. image: projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20190911 # Required. diskSizeGb: 20 # Optional, local disk is used if not specified. disableExternalIP: true # Optional, by default nodes do not have externalIP. additionalNetworkTags: # Optional.
  • tag1 additionalLabels: # Optional. kube-node: static provider: region: europe-west4 # Required. serviceAccountJSON: | # Required. { “type”: “service_account”, “project_id”: “sandbox”, “private_key_id”: “98sdcj5e8c7asd98j4j3n9csakn”, “private_key”: “—–BEGIN PRIVATE KEY—–”, “client_id”: “342975658279248”, “auth_uri”: “https://accounts.google.com/o/oauth2/auth”, “token_uri”: “https://oauth2.googleapis.com/token”, “auth_provider_x509_cert_url”: “https://www.googleapis.com/oauth2/v1/certs”, “client_x509_cert_url”: “https://www.googleapis.com/robot/v1/metadata/x509/k8s-test%40sandbox.iam.gserviceaccount.com” }

Необязательный параметр, список GCP VPC Networks, с которыми Kubernetes VPC

WithoutNAT

Network будет соединяться через пиринговое соединение. peeredVPCs:

  • default sshKey: “" # Обязательный параметр. labels: kube: example masterNodeGroup: replicas: 1 zones: # Необязательный параметр.
  • europe-west4-b instanceClass: machineType: n1-standard-4 # Обязательный параметр. image: projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20190911 # Обязательный параметр. diskSizeGb: 20 # Необязательный параметр. Если не указан — используется локальный диск. disableExternalIP: false # Необязательный параметр, по умолчанию master-узел имеет externalIP. additionalNetworkTags: # Необязательный параметр.
  • tag1 additionalLabels: # Необязательный параметр. kube-node: master nodeGroups:
  • name: static replicas: 1 zones: # Необязательный параметр.
  • europe-west4-b instanceClass: machineType: n1-standard-4 # Обязательный параметр. image: projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20190911 # Обязательный параметр. diskSizeGb: 20 # Необязательный параметр. Если не указан — используется локальный диск. disableExternalIP: true # Необязательный параметр, по умолчанию узлы не имеют externalIP. additionalNetworkTags: # Необязательный параметр.
  • tag1 additionalLabels: # Необязательный параметр. kube-node: static provider: region: europe-west4 # Обязательный параметр. serviceAccountJSON: | # Обязательный параметр. { “type”: “service_account”, “project_id”: “sandbox”, “private_key_id”: “98sdcj5e8c7asd98j4j3n9csakn”, “private_key”: “—–BEGIN PRIVATE KEY—–”, “client_id”: “342975658279248”, “auth_uri”: “https://accounts.google.com/o/oauth2/auth”, “token_uri”: “https://oauth2.googleapis.com/token”, “auth_provider_x509_cert_url”: “https://www.googleapis.com/oauth2/v1/certs”, “client_x509_cert_url”: “https://www.googleapis.com/robot/v1/metadata/x509/k8s-test%40sandbox.iam.gserviceaccount.com” }
  • A dedicated VPC is created for the cluster; all cluster nodes have public IP addresses.
  • Peering can be configured between the cluster VPC and other VPCs.

WithoutNAT

resources

  • Для кластера создается отдельная VPC, все узлы кластера имеют публичные IP-адреса.
  • Между VPC кластера и другими VPC можно настроить пиринговое соединение.

Example of the layout configuration:

resources

yaml apiVersion: deckhouse.io/v1 kind: GCPClusterConfiguration layout: WithoutNAT subnetworkCIDR: 10.0.0.0/24 # Required.

Пример конфигурации схемы размещения:

Optional, list of GCP VPC Networks with which Kubernetes VPC Network will be peered. peeredVPCs:

  • default labels: kube: example masterNodeGroup: replicas: 1 zones: # Optional.
  • europe-west4-b instanceClass: machineType: n1-standard-4 # Required. image: projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20190911 # Required. diskSizeGb: 20 # Optional, local disk is used if not specified. additionalNetworkTags: # Optional.
  • tag1 additionalLabels: # Optional. kube-node: master nodeGroups:
  • name: static replicas: 1 zones: # Optional.
  • europe-west4-b instanceClass: machineType: n1-standard-4 # Required. image: projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20190911 # Required. diskSizeGb: 20 # Optional, local disk is used if not specified. additionalNetworkTags: # Optional.
  • tag1 additionalLabels: # Optional. kube-node: static provider: region: europe-west4 # Required. serviceAccountJSON: | # Required. { “type”: “service_account”, “project_id”: “sandbox”, “private_key_id”: “98sdcj5e8c7asd98j4j3n9csakn”, “private_key”: “—–BEGIN PRIVATE KEY—–”, “client_id”: “342975658279248”, “auth_uri”: “https://accounts.google.com/o/oauth2/auth”, “token_uri”: “https://oauth2.googleapis.com/token”, “auth_provider_x509_cert_url”: “https://www.googleapis.com/oauth2/v1/certs”, “client_x509_cert_url”: “https://www.googleapis.com/robot/v1/metadata/x509/k8s-test%40sandbox.iam.gserviceaccount.com” }

yaml apiVersion: deckhouse.io/v1 kind: GCPClusterConfiguration layout: WithoutNAT subnetworkCIDR: 10.0.0.0/24 # Обязательный параметр.

 

Необязательный параметр, список GCP VPC Networks, с которыми Kubernetes VPC

 

Network будет соединяться через пиринговое соединение. peeredVPCs:

  • default labels: kube: example masterNodeGroup: replicas: 1 zones: # Необязательный параметр.
  • europe-west4-b instanceClass: machineType: n1-standard-4 # Обязательный параметр. image: projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20190911 # Обязательный параметр. diskSizeGb: 20 # Необязательный параметр, Если не указан — используется локальный диск. additionalNetworkTags: # Необязательный параметр.
  • tag1 additionalLabels: # Необязательный параметр. kube-node: master nodeGroups:
  • name: static replicas: 1 zones: # Необязательный параметр.
  • europe-west4-b instanceClass: machineType: n1-standard-4 # Обязательный параметр. image: projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20190911 # Обязательный параметр. diskSizeGb: 20 # Необязательный параметр. Если не указан — используется локальный диск. additionalNetworkTags: # Необязательный параметр.
  • tag1 additionalLabels: # Необязательный параметр. kube-node: static provider: region: europe-west4 # Обязательный параметр. serviceAccountJSON: | # Обязательный параметр. { “type”: “service_account”, “project_id”: “sandbox”, “private_key_id”: “98sdcj5e8c7asd98j4j3n9csakn”, “private_key”: “—–BEGIN PRIVATE KEY—–”, “client_id”: “342975658279248”, “auth_uri”: “https://accounts.google.com/o/oauth2/auth”, “token_uri”: “https://oauth2.googleapis.com/token”, “auth_provider_x509_cert_url”: “https://www.googleapis.com/oauth2/v1/certs”, “client_x509_cert_url”: “https://www.googleapis.com/robot/v1/metadata/x509/k8s-test%40sandbox.iam.gserviceaccount.com” }