Kelola layanan Google

Distributed Cloud Connected mendukung deployment sejumlah layanan. Google Cloud Workload layanan ini berjalan di container Kubernetes pada cluster yang terhubung ke Distributed Cloud Anda.

Layanan Google Cloud yang didukung

Distributed Cloud Connected mendukung deployment layananGoogle Cloud berikut:

Jenis layanan Termasuk dalam biaya yang terhubung ke GDC Ditagihkan terpisah
Komputasi Google Distributed Cloud khusus software
VM Runtime di Google Distributed Cloud
Sistem operasi tamu
(Anda harus mendapatkan lisensi sendiri)
Penyimpanan Penyimpanan mentah (volume persisten)
Container Storage Interface (CSI)
Penyimpanan hybrid
Software Defined Storage (SDS),
seperti Symcloud Storage
(Anda harus mendapatkan lisensi sendiri)
Jaringan Edge Network API
Dukungan VLAN
Plugin GKE Custom Network Interface (CNI)
Load balancer L4 yang dibundel 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 sendiri)
Kemampuan observasi Cloud Logging
Cloud Monitoring
Cloud Logging API Log dan metrik GDCc
Prometheus untuk kemampuan pengamatan yang terputus
Log dan metrik kustom tingkat aplikasi
Configuration Management Config Sync
Paket armada (pratinjau)
Tidak berlaku
Manajemen Dasbor Google Kubernetes Engine di Google Cloud konsol
Connect Gateway
kubectlAlat lokal
Upgrade software yang terhubung ke Distributed Cloud
Tidak berlaku
Keamanan Integrasi Cloud Key Management Service
Drive Disk Terenkripsi Mandiri (SED)
Identitas Beban Kerja Armada
Logging audit
Tidak berlaku

Prasyarat

Sebelum dapat men-deploy layanan Google Cloud di Distributed Cloud yang terhubung, 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 Google Cloud target.

Buat atau pilih cluster

Jika Anda belum melakukannya, buat cluster yang terhubung ke Distributed Cloud 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 workload layanan Anda. Google Cloud

Jika Anda menggunakan cluster yang ada, gunakan perintah berikut untuk memverifikasi bahwa VIP yang tersedia di cluster tersebut sudah 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 pada 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 memadai.

Mengonfigurasi subdomain Google Cloud layanan

Sebelum men-deploy layanan Google Cloud pertama di zona yang terhubung ke Distributed Cloud, Anda memiliki opsi untuk menyesuaikan subdomain tempat semua layanan Google Cloud 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 layanan di Distributed Cloud terhubung Google Cloud

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

Mengonfigurasi layanan Google Cloud yang di-deploy

Bagian ini menjelaskan langkah-langkah konfigurasi setelah 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 Google Cloud di cluster yang terhubung ke Distributed Cloud, server DNS khusus untuk layanan tersebut akan di-deploy di cluster. Sebaiknya Anda meneruskan 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 menampilkan output yang mirip dengan berikut ini:

    my-zone.google.private.goog
    
  2. Gunakan perintah berikut untuk mendapatkan VIP server DNS dalam 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 Google Cloud yang di-deploy 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. Berikan perhatian khusus pada 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
...

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

Saat Anda men-deploy layanan Google Cloud di cluster yang terhubung ke Distributed Cloud, Distributed Cloud akan menerbitkan sertifikat yang ditandatangani sendiri yang kemudian digunakan untuk mengenkripsi traffic jaringan untuk layanan tersebut. Sebaiknya Anda mengambil sertifikat ini dan mengonfigurasi lingkungan bisnis Anda agar 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 terhubung menghasilkan sejumlah paket kepercayaan di seluruh cluster Anda. Paket kepercayaan ini disimpan sebagai ConfigMap di setiap namespace pada 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 oleh layananGoogle Cloud target. 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 ingin Pod tersebut mengakses layanan Google Cloud target dan resource internal 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

Contoh output 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 Google Cloud yang di-deploy agar memercayai sertifikat Anda sendiri

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

Saat Anda menerapkan secret ini ke cluster, layanan Google Cloud yang di-deploy akan memercayai sertifikat CA yang disimpan dalam file ca.crt yang dirujuk dalam secret. 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 layananGoogle Cloud yang di-deploy. 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 Tentang autentikasi menggunakan identitas pihak ketiga.

Menggunakan layanan Google Cloud yang di-deploy

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

Menghapus layanan Google Cloud yang di-deploy

Untuk menghapus layanan Google Cloud yang di-deploy dari cluster yang terhubung ke Distributed Cloud, ikuti langkah-langkah dalam dokumentasi layanan tersebut. Jika Anda menyelesaikan salah satu langkah opsional setelah deployment 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 oleh layanan di mana pun kepercayaan tersebut telah ditetapkan.