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 | 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 lokalUpgrade 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.
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.googGunakan 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}")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 ditrust-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 Cloudtrust-store-user-ext. Berisi semua CA ditrust-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 Menyiapkan Layanan Identitas GKE untuk setiap cluster.
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.