Penyedia Cloud OpenStack untuk Kubernetes
memungkinkan Anda menggunakan load balancing OpenStack untuk cluster yang berjalan di VM OpenStack.
Setelah Anda menginstal dan mengonfigurasi penyedia, setiap Service jenis
LoadBalancer akan mendapatkan load balancer OpenStack Octavia
dan alamat IP eksternal dari jaringan IP mengambang Anda. Dalam dokumen ini, Anda akan memverifikasi integrasi dengan mengekspos aplikasi contoh.
Prasyarat
Panduan ini mengasumsikan bahwa Anda memiliki cluster yang dibuat dengan Google Distributed Cloud yang berjalan di lingkungan OpenStack dengan penyiapan yang mirip dengan yang dijelaskan dalam panduan Men-deploy cluster bare metal di OpenStack. Ikuti panduan tersebut terlebih dahulu sebelum mencoba langkah-langkah ini.

Mengonfigurasi penyedia
Bagian berikut mengasumsikan bahwa Anda memulai dari jendela terminal di workstation lokal.
Ambil file konfigurasi klien OpenStack (
openrc). Anda dapat mendownloadnya dari WebUI OpenStack.source PATH_TO_OPENRC_FILE/openrcBuat file konfigurasi untuk Penyedia Cloud Kubernetes OpenStack.
cat > cloud.conf << EOF [Global] auth-url=${OS_AUTH_URL} username=${OS_USERNAME} password=${OS_PASSWORD} region=RegionOne tenant-name=admin domain-id=default # this is for using a self-signed cert if your using a CA then comment this line # and point to the CA certificate using the "ca-file" arg tls-Insecure=true [LoadBalancer] use-octavia=true # this is generally the public network on OpenStack floating-network-id=PUBLIC_NETWORK_ID # this should be private network subnet where vip is allocated for the ABM nodes subnet-id=ABM_NETWORK_SUBNET_ID [BlockStorage] bs-version=v2 EOFGanti kode berikut:
OS_AUTH_URL,OS_USERNAME,OS_PASSWORD: Variabel ini seharusnya sudah ditetapkan di lingkungan dengan mengambil fileopenrc. Dengan demikian, perubahan tersebut akan otomatis diambil.PUBLIC_NETWORK_ID: Ini adalah jaringan yang dapat diakses secara publik dalam deployment OpenStack Anda, tempat alamat IP Mengambang dialokasikan. Dari jaringan inilahLoadBalancer IPsuntuk layanan Kubernetes akan ditetapkan. Anda dapat menggunakan perintah satu baris untuk mengambil IP ini dari lingkungan OpenStack Anda.ABM_NETWORK_SUBNET_ID: Ini adalah subnet di jaringan pribadi dalam deployment OpenStack Anda, tempat IP dialokasikan untuk VM yang menjalankan software-only Google Distributed Cloud. Anda dapat menggunakan perintah yang mirip dengan Mendapatkan ID jaringan publik di OpenStack untuk mengambil IP ini dari lingkungan OpenStack Anda.
Ambil alamat IP mengambang publik dari VM
abm-ws.export OPENSTACK_IPS=$(openstack floating ip list --tags=abm_ws_floatingip -f json) export FLOATING_IP=$(jq -c '.[]."Floating IP Address"' <<< $OPENSTACK_IPS | tr -d '"')Salin file
cloud.confke VMabm-wsdi OpenStack.scp ./cloud.conf ubuntu@$FLOATING_IP:~Gunakan SSH untuk terhubung dengan aman ke VM
abm-wsdan login sebagai penggunaroot.Pengguna
rootseperti yang dikonfigurasi oleh skrip Terraform adalahabm.ssh ubuntu@$FLOATING_IP sudo -u abm -iSalin file
cloud.confke direktori$HOMEpenggunaroot.cp /home/ubuntu/cloud.conf $HOMEBuat
Kubernetes Secretdengan konfigurasi.# make sure the kubectl client is pointing towards your cluster export KUBECONFIG=~/bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig # store the provider configurations as a Kubernetes secret kubectl create secret -n kube-system generic cloud-config --from-file=cloud.confInstal Penyedia Cloud OpenStack untuk Kubernetes.
# create the necessary roles for the OpenStack provider kubectl apply -f https://raw.githubusercontent.com/kubernetes/cloud-provider-openstack/master/manifests/controller-manager/cloud-controller-manager-roles.yaml # create the required role-bindings for the OpenStack provider kubectl apply -f https://raw.githubusercontent.com/kubernetes/cloud-provider-openstack/master/manifests/controller-manager/cloud-controller-manager-role-bindings.yaml # create the OpenStack controller manager kubectl apply -f https://raw.githubusercontent.com/kubernetes/cloud-provider-openstack/master/manifests/controller-manager/openstack-cloud-controller-manager-ds.yaml
Memvalidasi integrasi OpenStack
Men-deploy contoh aplikasi Point-Of-Sales.
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/anthos-samples/master/anthos-bm-openstack-terraform/resources/point-of-sales.yamlPastikan pod aplikasi berjalan.
kubectl get podsOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE api-server-7db4777f7f-zflk5 1/1 Running 0 74s inventory-58c6fb5568-dqk2x 1/1 Running 0 74s payments-68d5d65d5c-5mjl6 1/1 Running 0 74sMengekspos aplikasi melalui layanan berjenis
LoadBalancer.kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/anthos-samples/master/anthos-bm-openstack-terraform/resources/point-of-sales-service.yamlCoba akses layanan dari browser.
# wait for the external IP to be assigned kubectl get service api-server-lb NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE api-server-lb LoadBalancer 10.203.77.215 172.29.249.159 80:32378/TCP 4m12sAplikasi Tempat Penjualan yang diakses menggunakan
EXTERNAL-IP.
Anda dapat melihat Load Balancer OpenStack baru yang dibuat di OpenStack dengan membuka WebUI OpenStack.
