Kelola layanan Google

Distributed Cloud connected mendukung deployment sejumlah layanan Google Cloud . Workload layanan ini berjalan dalam container Kubernetes di cluster Distributed Cloud connected Anda.

Layanan yangdidukung Google Cloud

Distributed Cloud connected mendukung deployment layanan berikut Google Cloud services:

Jenis layanan Termasuk dalam biaya GDC connected Ditagihkan terpisah
Komputasi Google Distributed Cloud khusus software
Runtime VM di Google Distributed Cloud
Sistem operasi tamu
(Anda harus mendapatkan lisensi Anda sendiri)
Penyimpanan Container Storage Interface (CSI)
Penyimpanan hybrid
Software Defined Storage (SDS),
seperti Symcloud Storage
(Anda harus mendapatkan lisensi Anda sendiri)
Jaringan Edge Network API
Dukungan VLAN
Plugin GKE Custom Network Interface (CNI)
Load balancer L4 yang disertakan GKE
Tidak berlaku
AI/ML Men-deploy model AutoML dalam container Tidak berlaku
Database Tidak ada AlloyDB Omni (pratinjau)
Solusi database pihak ketiga, seperti MongoDB
(Anda harus mendapatkan lisensi Anda sendiri)
Kemampuan observasi Cloud Logging
Cloud Monitoring
Cloud Logging API log dan metrik GDCc
Prometheus untuk kemampuan observasi yang terputus
Log dan metrik kustom tingkat aplikasi
Manajemen Konfigurasi Config Sync
Menggunakan paket fleet di Distributed Cloud connected
Paket fleet (pratinjau)
Tidak berlaku
Manajemen Dasbor Google Kubernetes Engine di Google Cloud konsol
gateway koneksi
Alat lokal kubectl
Upgrade software Distributed Cloud connected
Tidak berlaku
Keamanan Integrasi Cloud Key Management Service
Drive Self-Encrypting Disk (SED)
Fleet Workload Identity
Audit logging
Tidak berlaku

Prasyarat

Sebelum dapat men-deploy Google Cloud layanan di Distributed Cloud connected, Anda harus menyelesaikan prasyarat yang tercantum di bagian ini.

Mendapatkan kredensial cluster

Gunakan perintah berikut untuk mendapatkan kredensial guna mengakses cluster target:

 gcloud container hub memberships get-credentials CLUSTER_ID \
       --project="PROJECT_ID"

Ganti kode berikut:

  • CLUSTER_ID: nama cluster target.
  • PROJECT_ID: ID project target Google Cloud .

Membuat atau memilih cluster

Jika belum melakukannya, buat cluster Distributed Cloud connected seperti yang dijelaskan dalam Membuat cluster. Saat membuat cluster, tentukan setidaknya 8 alamat IP virtual (VIP). VIP ini akan digunakan oleh container Kubernetes yang menjalankan Google Cloud workload layanan Anda.

Jika Anda menggunakan cluster yang ada, gunakan perintah berikut untuk memverifikasi bahwa VIP yang tersedia di cluster tersebut cukup:

 kubectl get cluster --all-namespaces -o jsonpath="{.items[0].spec.loadBalancer.addressPools}"

Perintah ini akan menampilkan output yang mirip dengan berikut ini:

[
  {
    "addresses": [
      "10.200.11.188-10.200.11.196"
    ],
    "name": "loadBalancerAddressPool-1"
  }
]

Jika VIP yang disediakan di cluster tidak mencukupi, error berikut akan muncul, dengan n adalah jumlah VIP yang diperlukan, dan m adalah jumlah VIP yang ditemukan di cluster:

Cluster has less than n external IPs, got m.

Jika Anda mendapatkan error ini, Anda harus menghapus dan membuat ulang cluster dengan jumlah VIP yang cukup.

Mengonfigurasi subdomain layanan Google Cloud

Sebelum men-deploy layanan pertama Google Cloud di zona Distributed Cloud connected, Anda memiliki opsi untuk menyesuaikan subdomain tempat semua Google Cloud layanan yang di-deploy di zona tersebut akan memproses koneksi. Anda tidak dapat mengubah subdomain ini setelah men-deploy setidaknya satu layanan di zona Distributed Cloud tersebut.

Gunakan perintah berikut untuk melihat konfigurasi subdomain:

kubectl -n dns-system get celldns cell-dns -o yaml

Perintah ini akan menampilkan output yang mirip dengan berikut ini:

apiVersion: system.private.gdc.goog/v1alpha1
kind: CellDNS
metadata:
  name: cell-dns
  namespace: dns-system
spec:
  delegatedSubdomain: private.goog

Gunakan perintah berikut untuk mengubah konfigurasi subdomain:

kubectl -n dns-system edit celldns cell-dns

Men-deploy a Google Cloud layanan di Distributed Cloud connected

Untuk men-deploy layanan di cluster Distributed Cloud connected, ikuti langkah-langkah deployment yang dijelaskan dalam dokumentasi layanan tersebut. Google Cloud

Mengonfigurasi layanan yang di-deploy Google Cloud

Bagian ini menjelaskan langkah-langkah konfigurasi pasca-deployment yang dapat Anda pilih untuk diselesaikan berdasarkan persyaratan bisnis Anda.

Meneruskan kueri DNS dari DNS internal ke DNS cluster

Saat Anda men-deploy layanan di cluster Distributed Cloud connected, server DNS khusus untuk layanan tersebut akan di-deploy di cluster. Google Cloud Sebaiknya teruskan kueri DNS untuk subdomain layanan ke server DNS yang baru dibuat di cluster.

  1. Gunakan perintah berikut untuk mendapatkan subdomain cluster:

    CLUSTER_SUBDOMAIN=$(kubectl get configmap -n \
        $(kubectl get clusters -A -o jsonpath="{.items[0].metadata.namespace}") \
        dns-prefix -o jsonpath="{.data.dnsPrefix}")
    DELEGATED_SUBDOMAIN=$(kubectl get celldns -n dns-system cell-dns -o \
      jsonpath="{.spec.delegatedSubdomain}")
    CLUSTER_FQDN="${CLUSTER_SUBDOMAIN?}.${DELEGATED_SUBDOMAIN?}"
    echo "${CLUSTER_FQDN?}"
    

    Perintah terakhir akan menampilkan output yang mirip dengan berikut ini:

    my-zone.google.private.goog
    
  2. Gunakan perintah berikut untuk mendapatkan VIP server DNS di cluster:

    DNS_EXT_IP=$(k -n dns-system get service gpc-coredns-external-tcp -o "jsonpath={.status.loadBalancer.ingress[0].ip}")
    
  3. Konfigurasi server DNS internal Anda untuk meneruskan kueri DNS untuk layanan yang di-deploy Google Cloud ke VIP yang Anda dapatkan pada langkah sebelumnya. Contoh:

    • Untuk dnsmasq, tambahkan kode berikut ke /etc/dnsmasq.conf:

      server=/${CLUSTER_FQDN?}/${DNS_EXT_IP?}
      
    • Untuk CoreDNS, tambahkan kode berikut ke Corefile:

      ${CLUSTER_FQDN?}:53 {
        errors
        cache 30
        forward . ${DNS_EXT_IP?} {
          max_concurrent 1000
        }
      }
      

Menguji resolusi DNS

Gunakan perintah dig berikut untuk menguji resolusi domain yang tepat. Perhatikan ANSWER SECTION:

 dig "ais-core.${CLUSTER_FQDN?}"

Perintah ini akan menampilkan output yang mirip dengan berikut ini:

...
;; ANSWER SECTION:
ais-core.my-zone.google.private.goog. 300 IN A 10.200.0.0
...

Mengambil sertifikat yang ditandatangani sendiri untuk layanan yang di-deploy Google Cloud

Saat Anda men-deploy layanan di cluster Distributed Cloud connected, Distributed Cloud connected akan menerbitkan sertifikat yang ditandatangani sendiri, yang kemudian digunakan untuk mengenkripsi traffic jaringan untuk layanan tersebut. Google Cloud Sebaiknya ambil sertifikat ini dan konfigurasi lingkungan bisnis Anda untuk mempercayainya.

Untuk mendapatkan sertifikat ini dalam format yang dienkode PEM, gunakan perintah berikut:

 kubectl get secret -n cert-manager-cluster-resources web-ca-cert -o jsonpath="{.data.ca\.crt}" | base64 -d

Distributed Cloud connected menghasilkan sejumlah paket kepercayaan di seluruh cluster Anda. Paket kepercayaan ini disimpan sebagai ConfigMap di setiap namespace di cluster. Yaitu:

  • trust-store-internal-only. Berisi Certificate Authority (CA) untuk layanan internal Distributed Cloud connected.
  • trust-store-root-ext. Berisi semua CA di trust-store-root-ext, ditambah CA yang menandatangani sertifikat yang ditandatangani sendiri untuk layanan target Google Cloud . Pasang paket kepercayaan ini di Pod jika Anda memerlukan Pod tersebut untuk mengakses layanan target Google Cloud .
  • trust-store-user-ext. Berisi semua CA di trust-store-root-ext, ditambah CA yang telah Anda tambahkan secara manual. Pasang paket ini di Pod jika Anda memerlukan Pod tersebut untuk mengakses layanan target Google Cloud dan resource internal apa pun yang menggunakan sertifikat yang ditandatangani oleh CA yang telah Anda tambahkan secara manual.

Gunakan perintah berikut untuk melihat ConfigMap target:

 kubectl -n default get configmap trust-store-user-root-ext -o yaml

Output contoh berikut menunjukkan resource ConfigMap trust-store-user-root-ext yang umum:

apiVersion: v1
binaryData:
  ca.jks: WW91IGFyZSBhd2Vzb21lIQo=
data:
  ca.crt: |-
    -----BEGIN CERTIFICATE-----
    WW91IGFyZSBncmVhdCEK
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    WW91IGFyZSBmYW50YXN0aWMhCg==
    -----END CERTIFICATE-----
kind: ConfigMap
metadata:
  labels:
    trust.cert-manager.io/bundle: trust-store-user-root-ext
  name: trust-store-user-root-ext
  namespace: default

Mengonfigurasi layanan yang di-deploy Google Cloud agar mempercayai sertifikat Anda sendiri

Anda dapat membuat rahasia TLS di cluster Distributed Cloud connected dan menganotasinya dengan anotasi security.private.gdc.goog/bundles=trust-store-user-root-ext di namespace cert-manager-cluster-resources. Hal ini memungkinkan layanan yang di-deploy Google Cloud mempercayai layanan pihak ketiga internal Anda untuk memfasilitasi pertukaran data di antara keduanya.

Saat Anda menerapkan rahasia ini ke cluster, layanan yang di-deploy Google Cloud akan mempercayai sertifikat CA yang disimpan dalam file ca.crt yang direferensikan dalam rahasia tersebut. Contoh:

apiVersion: v1
data:
  ca.crt: base64EncodedCaCert
  tls.crt: base64EncodedCert
  tls.key: base64EncodedKey
kind: Secret
metadata:
  annotations:
    security.private.gdc.goog/bundles: trust-store-user-root-ext
  name: my-corporate-cert
  namespace: cert-manager-cluster-resources
type: kubernetes.io/tls

Mengonfigurasi penyedia autentikasi

Anda dapat mengonfigurasi penyedia autentikasi untuk memfasilitasi login melalui antarmuka pengguna layanan yang di-deploy Google Cloud . Contoh berikut menunjukkan konfigurasi untuk penyedia OpenID Connect:

apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
  name: default
  namespace: kube-public
spec:
  authentication:
  - name: "google-oidc"
    oidc:
      clientID: "my-supersecret-client-id.apps.googleusercontent.com"
      clientSecret: "my-supersecret-secret"
      issuerURI: "https://accounts.google.com"
      scopes: "email"
      userClaim: "email"
  name: "default"

Untuk mengetahui informasi selengkapnya, lihat Menyiapkan GKE Identity Service untuk cluster individual.

Menggunakan layanan yang di-deploy Google Cloud

Lihat dokumentasi layanan yang di-deploy Google Cloud untuk mengetahui informasi tentang cara mengonfigurasinya guna memenuhi persyaratan bisnis Anda.

Menghapus layanan yang di-deploy Google Cloud

Untuk menghapus layanan yang di-deploy Google Cloud dari cluster Distributed Cloud connected, ikuti langkah-langkah dalam dokumentasi layanan tersebut. Jika Anda telah menyelesaikan salah satu langkah pasca-deployment opsional yang dijelaskan di halaman ini, lakukan juga hal berikut:

  • Nonaktifkan penerusan DNS ke subdomain layanan di DNS internal Anda.
  • Nonaktifkan kepercayaan untuk sertifikat yang ditandatangani sendiri untuk layanan tersebut di mana pun kepercayaan tersebut telah ditetapkan.