Menggunakan halaman Aplikasi GKE di konsol Google Cloud


Tutorial ini menjelaskan cara menggunakan halaman Aplikasi Google Kubernetes Engine (GKE) di konsol Google Cloud.

Saat Anda mengadopsi Kubernetes untuk banyak aplikasi dan resource, identifikasi dan pelacakan berbagai komponen yang terkait dengan satu aplikasi mungkin cukup sulit. Saat Anda men-deploy beberapa aplikasi di setiap namespace, mungkin sulit untuk mengetahui resource apa yang terkait dengan aplikasi tertentu. Selain itu, Anda harus sering menelusuri di beberapa lokasi untuk mendapatkan dokumentasi dan metadata yang menjelaskan tentang aplikasi tersebut, siapa pemiliknya, dan cara berinteraksi dengan layanan tersebut.

GKE membantu mengatasi tantangan ini dengan halaman Aplikasi:

Tampilan sebagian halaman Aplikasi yang menampilkan daftar aplikasi
beserta berbagai properti.

Halaman Aplikasi adalah resource independen dalam arsitektur yang menjelaskan metadata tentang sistem Anda. Anda bisa menggunakan halaman ini untuk mengatur resource secara visual tanpa mengubah arsitekturnya. Dengan menentukan nilai dalam file YAML, Anda dapat mengelompokkan semua resource aplikasi dan menyertakan metadata penting untuk tim operasi Anda. Membuat, memodifikasi, dan menghapus file YAML tidak memengaruhi resource yang ada, sehingga Anda dapat langsung menggunakan resource tanpa risiko terhadap sistem.

Untuk mendemonstrasikan halaman ini, tutorial ini menunjukkan cara menerapkan resource Aplikasi Kubernetes pada aplikasi dan menambahkan metadata yang ditentukan pengguna untuk mengatur dan menyederhanakan pengelolaan aplikasi di GKE.

Tutorial ini ditujukan bagi developer yang membuat aplikasi untuk dijalankan di GKE. Anda dianggap sudah memahami konsep dasar Kubernetes dan memiliki pengalaman menulis file YAML resource Kubernetes.

Tujuan

  • Memperkenalkan resource Aplikasi Kubernetes.
  • Menambahkan resource Aplikasi Kubernetes ke arsitektur yang ada.
  • Membuat dan melihat informasi kustom tentang aplikasi melalui konsol Google Cloud.

Biaya

Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga. Pengguna Google Cloud baru mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.

Sebelum memulai

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the Compute Engine and Kubernetes Engine APIs.

    Enable the APIs

  4. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    Anda menjalankan perintah untuk tutorial ini di Cloud Shell atau Cloud Shell Editor.

Mempersiapkan lingkungan Anda

  1. Di Cloud Shell, tetapkan variabel lingkungan untuk project Anda:

    export PROJECT_ID=PROJECT_ID
    gcloud config set core/project $PROJECT_ID
    gcloud config set compute/zone us-central1-c

    Ganti PROJECT_ID dengan project ID Google Cloud Anda.

  2. Buat cluster GKE:

    gcloud container clusters create sample-cluster
    

    Untuk tutorial ini, Anda dapat menjalankan aplikasi di cluster GKE default.

Menginstal aplikasi contoh

Dalam tutorial ini, Anda akan menyimulasikan beberapa aplikasi yang berjalan di namespace yang sama menggunakan aplikasi contoh Nginx dasar dan aplikasi contoh Bank of Anthos.

  1. Di Cloud Shell, instal aplikasi contoh Nginx:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/application/web/web.yaml
    

    Perintah ini membuat resource StatefulSet yang disebut web dan layanan yang disebut nginx. Di konsol Google Cloud, Anda dapat melihat resource ini di halaman Workloads dan Services & Ingress GKE.

  2. Clone repositori GitHub yang berisi aplikasi contoh Bank of Anthos:

    git clone https://github.com/GoogleCloudPlatform/bank-of-anthos.git
    cd bank-of-anthos
    
  3. Buat kunci SSH dan simpan sebagai Secret Kubernetes:

    openssl genrsa -out jwtRS256.key 4096
    openssl rsa -in jwtRS256.key -outform PEM -pubout -out jwtRS256.key.pub
    kubectl create secret generic jwt-key --from-file=./jwtRS256.key --from-file=./jwtRS256.key.pub
    

    Aplikasi contoh Bank of Anthos memerlukan kunci SSH agar dapat berjalan.

  4. Deploy aplikasi contoh ke cluster Anda:

    kubectl apply -f kubernetes-manifests
    

    Setelah beberapa saat, Anda dapat melihat resource aplikasi di halaman berikut di konsol Google Cloud:

    Perhatikan hal-hal berikut:

    • Resource untuk aplikasi contoh Nginx dan Bank of Anthos digabungkan.
    • Belum ada resource yang ditampilkan di halaman Aplikasi. Anda akan mengisi halaman Aplikasi di langkah-langkah berikutnya.

Mempersiapkan GKE

Resource yang ditampilkan halaman Aplikasi ditentukan dengan jenis resource Aplikasi Kubernetes, definisi resource kustom (CRD) yang disediakan oleh project Kubernetes open source. Secara default, CRD Aplikasi tidak diaktifkan di Kubernetes. Beberapa layanan di GKE, seperti Marketplace dan Deployment Aplikasi, menginstal CRD Aplikasi, tetapi jika Anda tidak menggunakan salah satu layanan tersebut, CRD Aplikasi tidak tersedia secara default.

Untuk menginstal CRD Aplikasi, lakukan hal berikut:

  1. Di Cloud Shell, terapkan CRD Aplikasi satu kali pada setiap cluster:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/application/master/deploy/kube-app-manager-aio.yaml
    
  2. (Opsional) Setelah perintah selesai, lihat CRD Aplikasi di cluster:

    kubectl get crd
    

    Output berikut adalah daftar CRD yang terinstal, termasuk applications.app.k8s.io:

    NAME                                    CREATED AT
    applications.app.k8s.io                 2020-07-24T19:32:20Z
    backendconfigs.cloud.google.com         2020-07-24T19:28:40Z
    managedcertificates.networking.gke.io   2020-07-24T19:28:57Z
    scalingpolicies.scalingpolicy.kope.io   2020-07-24T19:28:57Z
    updateinfos.nodemanagement.gke.io       2020-07-24T19:28:57Z
    

Menyertakan resource aplikasi

Setelah CRD Aplikasi tersedia di cluster, langkah berikutnya adalah membuat dan men-deploy instance resource Aplikasi.

Karena resource Aplikasi merupakan resource Kubernetes, resource ini memiliki struktur yang serupa dengan resource Kubernetes lainnya, termasuk kolom dan opsi untuk apiVersion, kind, metadata, dan spec:

apiVersion: app.k8s.io/v1beta1
kind: Application
metadata:
  name: ...
spec:
   ...

Di bagian berikut, Anda menggunakan berbagai kolom dan opsi yang tersedia dalam resource Aplikasi.

Membuat resource Aplikasi dasar

Anda dapat menambahkan resource Application ke set resource yang ada. Dalam tutorial ini, Anda akan memulai dengan resource kosong dan mengisi setiap bagian.

  1. Di Cloud Shell, buat dan edit file application.yaml di direktori kubernetes-manifests:

    touch kubernetes-manifests/application.yaml
    edit kubernetes-manifests/application.yaml
    

    Cloud Shell Editor akan terbuka dan menampilkan file kosong.

  2. Tempel baris berikut untuk menentukan aplikasi pertama Anda:

    apiVersion: app.k8s.io/v1beta1
    kind: Application
    metadata:
      name: "bank-of-anthos"
    
  3. Di panel menu Cloud Shell, klik Buka Terminal.

  4. Di Cloud Shell, terapkan resource:

    kubectl apply -f kubernetes-manifests/application.yaml
    
  5. Di konsol Google Cloud, buka halaman Aplikasi.

    Buka Applications

    Halaman Aplikasi menampilkan resource yang telah ditambahkan:

    Aplikasi Bank of Anthos disertakan dalam daftar aplikasi.

Menyertakan resource berdasarkan komponen

Halaman Aplikasi menampilkan aplikasi Bank of Anthos. Saat mengklik bank-of-anthos di kolom Nama, Anda akan melihat informasi dasar tentang aplikasi tersebut:

Detail aplikasi mencakup cluster, namespace, dan tanggal
pembuatan.

Anda dapat menambahkan berbagai jenis komponen untuk ditampilkan di konsol Google Cloud. Misalnya, untuk menampilkan Layanan, Deployment, dan StatefulSets, Anda mengedit bagian componentKinds dari definisi application.yaml—misalnya, sebagai berikut:

spec:
  componentKinds:
    - group: v1
      kind: Service
    - group: apps
      kind: Deployment
    - group: v1
      kind: StatefulSet

Pada langkah-langkah berikut, Anda akan menambahkan komponen berikut ke definisi resource Bank of Anthos:

  1. Di panel menu Cloud Shell, klik Buka Editor.

  2. Di Cloud Shell Editor, timpa konten file kubernetes-manifests/application.yaml dengan menempelkan perintah berikut:

    apiVersion: app.k8s.io/v1beta1
    kind: Application
    metadata:
      name: "bank-of-anthos"
    spec:
      componentKinds:
        - group: v1
          kind: Service
        - group: apps
          kind: Deployment
        - group: v1
          kind: StatefulSet
    

    Penambahan bagian spec akan menambahkan Service, Deployment, dan StatefulSet ke definisi aplikasi Anda.

  3. Di Cloud Shell, terapkan resource:

    kubectl apply -f kubernetes-manifests/application.yaml
    
  4. Di konsol Google Cloud, buka halaman detail untuk aplikasi Bank of Anthos.

    Buka detail Bank of Anthos

    Komponen dari jenis tertentu akan ditampilkan:

    Daftar detail ini mencakup jenis komponen seperti
Layanan dan Deployment.

Memfilter resource dengan pemilih

Pada tahap tutorial ini, daftar komponen menyertakan semua resource untuk kedua aplikasi contoh bagi kumpulan komponen yang ditentukan dari seluruh namespace. Misalnya, diagram berikut menunjukkan Layanan nginx dari aplikasi contoh Nginx dan Deployment transactionhistory dari aplikasi contoh Bank of Anthos:

Daftar komponen dibuat dari semua aplikasi di
namespace.

Guna memastikan hanya resource untuk satu aplikasi yang ditampilkan, misalnya untuk aplikasi Bank of Anthos, Anda dapat menggunakan pemilih untuk mengidentifikasi resource tertentu. Untuk melihat cara kerja pemilih, tambahkan label ke resource dengan mengikuti langkah-langkah berikut:

  1. Di Cloud Shell, buka file frontend.yaml:

    edit kubernetes-manifests/frontend.yaml
    
  2. Di Cloud Shell Editor, tempel entri label berikut setelah baris 18:

    labels:
        app.kubernetes.io/name: "bank-of-anthos"
    

    Bagian metadata akan terlihat seperti berikut:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: frontend
      labels:
        app.kubernetes.io/name: "bank-of-anthos"
    spec:
    

    File application.yaml yang sudah selesai akan terlihat seperti berikut:

    apiVersion: app.k8s.io/v1beta1
    kind: Application
    metadata:
      name: "bank-of-anthos"
      labels:
        app.kubernetes.io/name: "bank-of-anthos"
    spec:
      selector:
        matchLabels:
         app.kubernetes.io/name: "bank-of-anthos"
      componentKinds:
        - group: v1
          kind: Service
        - group: apps
          kind: Deployment
        - group: v1
          kind: StatefulSet
    
  3. Di Cloud Shell, terapkan resource:

    kubectl apply -f kubernetes-manifests/
    
  4. Di konsol Google Cloud, buka halaman detail untuk aplikasi Bank of Anthos.

    Buka detail Bank of Anthos

    Satu-satunya resource yang cocok dengan label tertentu akan ditampilkan:

    Daftar komponen menampilkan resource Deployment.

Terapkan label ke semua resource dengan kustomize

Menerapkan label secara manual ke setiap resource dalam aplikasi bisa merepotkan. Langkah-langkah berikut menunjukkan cara menggunakan kustomize untuk menambahkan label secara efisien ke semua resource:

  1. Di Cloud Shell, download kustomize:

    curl -s "https://raw.githubusercontent.com/\
    kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash
    
  2. Buat dan edit file kustomization.yaml:

    touch kubernetes-manifests/kustomization.yaml
    edit kubernetes-manifests/kustomization.yaml
    
  3. Di Cloud Shell Editor, tambahkan baris berikut ke kustomization.yaml:

    apiVersion: kustomize.config.k8s.io/v1beta1
    kind: Kustomization
    
    resources:
    - accounts-db.yaml
    - application.yaml
    - balance-reader.yaml
    - config.yaml
    - contacts.yaml
    - frontend.yaml
    - ledger-db.yaml
    - ledger-writer.yaml
    - loadgenerator.yaml
    - transaction-history.yaml
    - userservice.yaml
    
    commonLabels:
        app.kubernetes.io/name: "bank-of-anthos"
    

    Dalam definisi kustomization.yaml ini, Anda menentukan resource mana yang akan menerapkan perubahan dan perubahan apa yang akan dilakukan. Dalam hal ini, Anda menentukan bahwa semua resource harus memiliki label umum app.kubernetes.io/name: "bank-of-anthos".

  4. Di Cloud Shell, hapus resource lama:

    kubectl delete -f kubernetes-manifests/
    

    Anda harus menghapus resource lama sebelum menerapkan resource baru yang ditentukan dalam kustomization.yaml.

  5. Terapkan resource menggunakan flag kustomize, bukan flag file:

    ./kustomize build kubernetes-manifests/ | kubectl apply -f -
    
  6. Di konsol Google Cloud, buka halaman detail untuk aplikasi Bank of Anthos.

    Buka detail Bank of Anthos

    Halaman detail menampilkan resource untuk aplikasi contoh Bank of Anthos dan tidak ada resource dari aplikasi contoh Nginx:

    Hanya komponen Bank of Anthos, seperti StatefulSet, yang
ditampilkan.

Menambahkan metadata yang berguna di tampilan

Anda dapat menampilkan metadata kustom untuk aplikasi di konsol Google Cloud. Anda dapat menyertakan apa yang dimiliki aplikasi, siapa yang memilikinya, di mana dapat menemukan informasi lebih lanjut tentang aplikasi, dan cara login ke aplikasi. Jenis informasi ini berguna untuk berbagai kasus penggunaan—misalnya, jika Anda mengoperasikan beberapa aplikasi dalam organisasi Anda.

Bagian berikut menjelaskan beberapa metadata yang dapat ditambahkan.

Menambahkan deskripsi dan dokumentasi

Anda dapat menambahkan deskripsi dan link yang muncul di panel Info aplikasi. Untuk mengakses panel ini dari halaman Detail, klik Tampilkan Panel Info.

Untuk menampilkan informasi di panel ini, tentukan elemen seperti description dan links di bagian descriptor pada file application.yaml Anda.

descriptor:
    description:
    links:
    - description:
      url:

Untuk memperbarui bagian descriptor, lakukan hal berikut:

  1. Di Cloud Shell Editor, timpa konten file application.yaml dengan menempelkan perintah berikut:

    apiVersion: app.k8s.io/v1beta1
    kind: Application
    metadata:
      name: "bank-of-anthos"
      labels:
        app.kubernetes.io/name: "bank-of-anthos"
    spec:
      selector:
        matchLabels:
         app.kubernetes.io/name: "bank-of-anthos"
    
      componentKinds:
        - group: v1
          kind: Service
        - group: apps
          kind: Deployment
        - group: v1
          kind: StatefulSet
    
      descriptor:
        description: |-
            This application simulates a bank's payment processing network using
            [Anthos](/anthos/).
            Bank of Anthos allows users to create artificial accounts and
            simulate transactions between accounts. Bank of Anthos was developed
            to create an end-to-end sample demonstrating Anthos best practices.
    
        links:
        - description: 'About Anthos on GCP'
          url: /anthos/
        - description: 'Bank of Anthos GitHub Repository'
          url: https://github.com/GoogleCloudPlatform/bank-of-anthos
    
  2. Di Cloud Shell, deploy resource Aplikasi:

    kubectl apply -f kubernetes-manifests/application.yaml
    
  3. Di konsol Google Cloud, buka halaman detail untuk aplikasi Bank of Anthos.

    Buka detail Bank of Anthos

  4. Untuk meninjau pembaruan, klik Tampilkan Panel Info.

    Panel Info aplikasi menampilkan deskripsi dan daftar dokumen:

    Dokumen dalam daftar diformat sebagai hyperlink.

Menyertakan jenis software

Halaman Aplikasi menyertakan kolom (Software) untuk jenis software dalam daftar aplikasi. Kolom ini dapat disesuaikan untuk membantu mengatur dan mengategorikan aplikasi Anda sesuai dengan kebutuhan. Misalnya, Anda dapat menunjukkan bahwa software tersebut bersifat internal atau eksternal. Atau, jika Anda memiliki beberapa aplikasi yang di-build dari jenis dasar bersama, Anda dapat menentukan jenis dasar apa yang diterapkan oleh aplikasi.

Untuk menambahkan deskripsi kustom ke jenis software, gunakan kolom type di bagian descriptor file application.yaml:

 descriptor:
    type: External App

Anda dapat menampilkan nilai untuk type sebagai hyperlink di konsol Google Cloud. Anda menentukan URL untuk hyperlink menggunakan entri pertama dari bagian links. Pada langkah-langkah berikut, Anda akan memperbarui bagian links seperti berikut:

    links:
    - description: 'Bank of Anthos GitHub Repository'
      url: https://github.com/GoogleCloudPlatform/bank-of-anthos
  1. Di Cloud Shell Editor, timpa konten application.yaml dengan menempelkan perintah berikut:

    apiVersion: app.k8s.io/v1beta1
    kind: Application
    metadata:
      name: "bank-of-anthos"
      labels:
        app.kubernetes.io/name: "bank-of-anthos"
    spec:
      selector:
        matchLabels:
         app.kubernetes.io/name: "bank-of-anthos"
    
      componentKinds:
        - group: v1
          kind: Service
        - group: apps
          kind: Deployment
        - group: v1
          kind: StatefulSet
    
      descriptor:
        type: External App
    
        description: |-
            This application simulates a bank's payment processing network using [Anthos](/anthos/).
            Bank of Anthos allows users to create artificial accounts and simulate transactions between accounts. Bank of Anthos was developed to create an end-to-end sample demonstrating Anthos best practices.
    
        links:
        - description: 'About Anthos on GCP'
          url: /anthos/
        - description: 'Bank of Anthos GitHub Repository'
          url: https://github.com/GoogleCloudPlatform/bank-of-anthos
    
  2. Di Cloud Shell, deploy resource Aplikasi:

    kubectl apply -f kubernetes-manifests/application.yaml
    
  3. Di konsol Google Cloud, buka halaman Aplikasi.

    Buka Applications

    Aplikasi Eksternal ditampilkan di kolom Software:

    Jenis software Aplikasi Eksternal diformat sebagai hyperlink.

Menyertakan versi aplikasi

Halaman Aplikasi utama menyertakan kolom untuk versi. Dalam praktiknya, nilai untuk kolom ini diperbarui secara terprogram agar merujuk ke versi sebenarnya yang di-deploy.

Untuk mengisi kolom versi, sertakan kolom version di bagian descriptor seperti pada contoh berikut:

  descriptor:
    type: External App
    version: "2.3.2"

Pada langkah-langkah berikut, Anda akan menambahkan kolom untuk versi aplikasi.

  1. Di Cloud Shell Editor, timpa konten file application.yaml dengan menempelkan perintah berikut:

    apiVersion: app.k8s.io/v1beta1
    kind: Application
    metadata:
      name: "bank-of-anthos"
      labels:
        app.kubernetes.io/name: "bank-of-anthos"
    spec:
      selector:
        matchLabels:
         app.kubernetes.io/name: "bank-of-anthos"
    
      componentKinds:
        - group: v1
          kind: Service
        - group: apps
          kind: Deployment
        - group: v1
          kind: StatefulSet
    
      descriptor:
        type: External App
    
        version: "2.3.2"
    
        description: |-
            This application simulates a bank's payment processing network using [Anthos](/anthos/).
            Bank of Anthos allows users to create artificial accounts and simulate transactions between accounts. Bank of Anthos was developed to create an end-to-end sample demonstrating Anthos best practices.
    
        links:
        - description: 'About Anthos on GCP'
          url: /anthos/
        - description: 'Bank of Anthos GitHub Repository'
          url: https://github.com/GoogleCloudPlatform/bank-of-anthos
    
  2. Di Cloud Shell, deploy resource Aplikasi:

    kubectl apply -f kubernetes-manifests/application.yaml
    
  3. Di konsol Google Cloud, buka halaman Aplikasi.

    Buka Applications

    Kolom Versi untuk aplikasi Bank of Anthos ditampilkan sebagai 2.3.2:

    Detail untuk aplikasi mencakup kolom jenis dan versi software.

Menambahkan detail pengelola

Pada langkah ini, Anda akan menambahkan teks statis kustom ke bagian utama halaman Aplikasi. Anda menentukan detail ini di bagian info dari file application.yaml sebagai berikut:

  info:
  - name: LABEL
    value: STRING

Untuk menyertakan nilai statis, berikan detail untuk LABEL dan STRING di bagian info. Misalnya, Anda dapat memasukkan Owner untuk name dan John Smith untuk value.

  1. Di Cloud Shell Editor, timpa konten application.yaml dengan menempelkan perintah berikut:

    apiVersion: app.k8s.io/v1beta1
    kind: Application
    metadata:
      name: "bank-of-anthos"
      labels:
        app.kubernetes.io/name: "bank-of-anthos"
    spec:
      selector:
        matchLabels:
         app.kubernetes.io/name: "bank-of-anthos"
    
      componentKinds:
        - group: v1
          kind: Service
        - group: apps
          kind: Deployment
        - group: v1
          kind: StatefulSet
    
      descriptor:
        type: External App
    
        version: "2.3.2"
    
        description: |-
            This application simulates a bank's payment processing network using [Anthos](/anthos/).
            Bank of Anthos allows users to create artificial accounts and simulate transactions between accounts. Bank of Anthos was developed to create an end-to-end sample demonstrating Anthos best practices.
    
        links:
        - description: 'About Anthos on GCP'
          url: /anthos/
        - description: 'Bank of Anthos GitHub Repository'
          url: https://github.com/GoogleCloudPlatform/bank-of-anthos
    
      info:
      - name: Owner
        value: John Smith
    
  2. Di Cloud Shell, deploy resource Aplikasi:

    kubectl apply -f kubernetes-manifests/application.yaml
    
  3. Di konsol Google Cloud, buka halaman detail untuk aplikasi Bank of Anthos.

    Buka detail Bank of Anthos

    Halaman detail mencakup pemilik aplikasi Bank of Anthos:

    John Smith tercantum sebagai pemilik.

Mengekspos endpoint aplikasi

Selain nilai statis, Anda dapat mengekspos nilai dinamis dari Deployment itu sendiri. Pada langkah-langkah berikut, Anda akan menampilkan alamat IP load balancer sehingga siapa pun yang melihat halaman detail aplikasi dapat mengakses aplikasi secara langsung.

Untuk menampilkan nilai ini, gunakan spesifikasi serviceRef. Spesifikasi valid lainnya mencakup configMapKeyRef, ingressRef, dan secretKeyRef.

Dalam spesifikasi serviceRef, Anda menyertakan nilai dinamis ini menggunakan jenis Reference. Untuk tutorial ini, spesifikasi untuk serviceRef adalah sebagai berikut:

 info:
  - name: LABEL
    type: Reference
    valueFrom:
      serviceRef:
        name: SERVICE_NAME
        fieldPath: DATA_LOCATION

Anda dapat mengganti nilai berikut:

  • LABEL: label yang mendeskripsikan instance Referensi tertentu—misalnya, App Frontend URL
  • SERVICE_NAME: nama yang mengidentifikasi Layanan$dash; misalnya, frontend
  • DATA_LOCATION: lokasi data di Layanan— misalnya, status.loadBalancer.ingress[0].ip

Spesifikasi serviceRef dan ingressRef juga mendukung elemen path. Jika URL memerlukan detail terkait jalur, Anda menyertakan detail tersebut di kolom path:

 info:
  - name: LABEL
    type: Reference
    valueFrom:
      serviceRef:
        name: SERVICE_NAME
        fieldPath: DATA_LOCATION
        path: /wp-admin

Alamat IP dan jalur IP endpoint disambungkan—misalnya, 35.202.90.0/wp-admin.

Anda juga dapat memaksa penggunaan HTTP atau HTTPS menggunakan kolom protocol sebagai berikut:

 info:
  - name: LABEL
    type: Reference
    valueFrom:
      serviceRef:
        name: SERVICE_NAME
        fieldPath: DATA_LOCATION
        path: /wp-admin
        protocol: HTTPS

Detail ini menghasilkan URL berikut:

https://35.202.90.0/wp-admin

Pada langkah-langkah berikut, Anda akan menggunakan serviceRef guna mengekspos alamat IP load balancer Layanan untuk aplikasi Bank of Anthos:

  1. Di Cloud Shell Editor, timpa konten file application.yaml dengan kode berikut:

    apiVersion: app.k8s.io/v1beta1
    kind: Application
    metadata:
      name: "bank-of-anthos"
      labels:
        app.kubernetes.io/name: "bank-of-anthos"
    spec:
      selector:
        matchLabels:
         app.kubernetes.io/name: "bank-of-anthos"
    
      componentKinds:
        - group: v1
          kind: Service
        - group: apps
          kind: Deployment
        - group: v1
          kind: StatefulSet
    
      descriptor:
        type: External App
    
        version: "2.3.2"
    
        description: |-
            This application simulates a bank's payment processing network using [Anthos](/anthos/).
            Bank of Anthos allows users to create artificial accounts and simulate transactions between accounts. Bank of Anthos was developed to create an end-to-end sample demonstrating Anthos best practices.
    
        links:
        - description: 'About Anthos on GCP'
          url: /anthos/
        - description: 'Bank of Anthos GitHub Repository'
          url: https://github.com/GoogleCloudPlatform/bank-of-anthos
    
      info:
      - name: Owner
        value: John Smith
      - name: App Frontend URL
        type: Reference
        valueFrom:
          serviceRef:
            name: frontend
            fieldPath: status.loadBalancer.ingress[0].ip
            protocol: HTTPS
    
  2. Di Cloud Shell, deploy resource Aplikasi:

    kubectl apply -f kubernetes-manifests/application.yaml
    
  3. Di konsol Google Cloud, buka halaman detail untuk aplikasi Bank of Anthos.

    Buka detail Bank of Anthos

    Halaman detail menyertakan alamat IP endpoint untuk aplikasi Bank of Anthos:

    Alamat IP diberi label App Frontend URL.

Memberikan kredensial akses

Seperti yang disebutkan sebelumnya, Anda dapat mengekspos Secret Kubernetes melalui konsol Google Cloud menggunakan elemen secretKeyRef. Dalam tutorial ini, Anda akan memberikan nama pengguna dan sandi kepada operator agar mereka dapat login ke aplikasi.

  1. Di Cloud Shell, buat Secret:

    kubectl create secret generic boa-access --from-literal=boa-user=testuser --from-literal=boa-pass=password
    
  2. Di Cloud Shell Editor, timpa konten file application.yaml dengan menempelkan perintah berikut. Pembaruan ini mencakup referensi ke nama pengguna dan sandi dalam anotasi secretKeyRef.

    apiVersion: app.k8s.io/v1beta1
    kind: Application
    metadata:
      name: "bank-of-anthos"
      labels:
        app.kubernetes.io/name: "bank-of-anthos"
    spec:
      selector:
        matchLabels:
         app.kubernetes.io/name: "bank-of-anthos"
    
      componentKinds:
        - group: v1
          kind: Service
        - group: apps
          kind: Deployment
        - group: v1
          kind: StatefulSet
    
      descriptor:
        type: External App
    
        version: "2.3.2"
    
        description: |-
            This application simulates a bank's payment processing network using [Anthos](/anthos/).
            Bank of Anthos allows users to create artificial accounts and simulate transactions between accounts. Bank of Anthos was developed to create an end-to-end sample demonstrating Anthos best practices.
    
        links:
        - description: 'About Anthos on GCP'
          url: /anthos/
        - description: 'Bank of Anthos GitHub Repository'
          url: https://github.com/GoogleCloudPlatform/bank-of-anthos
    
      info:
      - name: Owner
        value: John Smith
      - name: App Frontend URL
        type: Reference
        valueFrom:
          serviceRef:
            name: frontend
            fieldPath: status.loadBalancer.ingress[0].ip
            protocol: HTTPS
      - name: TestUser username
        type: Reference
        valueFrom:
          secretKeyRef:
            name: boa-access
            key: boa-user
    
      - name: TestUser password
        type: Reference
        valueFrom:
          secretKeyRef:
            name: boa-access
            key: boa-pass
    
  3. Di Cloud Shell, deploy resource Aplikasi:

    kubectl apply -f kubernetes-manifests/application.yaml
    
  4. Di konsol Google Cloud, buka halaman detail untuk aplikasi Bank of Anthos.

    Buka detail Bank of Anthos

  5. Klik pratinjau data secret. Nama pengguna dan sandi akan ditampilkan:

    Detail aplikasi menyertakan link untuk mengakses
kredensial.

Kemampuan untuk mengungkapkan data Secret dapat menjadi fitur yang bermanfaat bagi tim operasi Anda. Namun, kemampuan untuk melihat Secret ini diatur oleh izin akses Identity and Access Management (IAM) untuk halaman detail GKE. Siapa saja yang memiliki izin untuk melihat cluster juga dapat melihat Secret, jadi penting untuk mempertimbangkan dengan cermat apa yang Anda ekspos.

Menambahkan ikon aplikasi

Agar aplikasi Anda lebih menarik, Anda dapat menyertakan logo yang ditampilkan di daftar aplikasi dan halaman detail Anda. Untuk menyertakan logo, tentukan URI data gambar dalam anotasi kubernetes-engine.cloud.google.com/icon.

Mengonversi gambar ke URI data berada di luar cakupan tutorial ini. Namun, penelusuran Google terkait "mengonversi gambar ke URI data" menampilkan berbagai utilitas untuk membantu Anda menghasilkan string data dari gambar. Karena URI data untuk gambar yang digunakan di bagian ini sangat panjang, maka tidak praktis untuk menyertakannya dalam tutorial. URI data lengkap dapat dilihat di file application.yaml yang sudah selesai. String URI data akan dimulai seperti ini: data:image/png;base64,iVBORw0KGgoAAAANSUhEUg.... Diakhiri dengan K5CYII=. Pastikan untuk tidak menyertakan tanda kutip atau karakter HTML di akhir.

File application.yaml lengkap tersedia sebagai poin inti untuk referensi Anda.

Untuk menambahkan ikon, perbarui bagian metadata pada application.yaml:

  1. Salin kode berikut:

    annotations:
      kubernetes-engine.cloud.google.com/icon: >-
        data:image/png;base64,DATA_URI

    Ganti DATA_URI dengan string yang ditemukan dalam file application.yaml yang telah selesai yang direferensikan sebelumnya.

  2. Di Cloud Shell Editor, tempelkan kode yang Anda salin setelah bagian labels di bagian metadata pada application.yaml.

    Bagian application.yaml tersebut terlihat mirip dengan berikut, dengan DATA_URI mewakili nilai URI data.

    apiVersion: app.k8s.io/v1beta1
    kind: Application
    metadata:
      name: "bank-of-anthos"
      labels:
        app.kubernetes.io/name: "bank-of-anthos"
      annotations:
        kubernetes-engine.cloud.google.com/icon: >-
          data:image/png;base64,DATA_URI
    spec:
    
  3. Di Cloud Shell, deploy resource aplikasi:

    kubectl apply -f kubernetes-manifests/application.yaml
    
  4. Di konsol Google Cloud, buka halaman Aplikasi.

    Buka Applications

    Logo ditampilkan dalam daftar aplikasi:

    Logo ditampilkan di samping nama aplikasi dalam daftar
aplikasi.

  5. Di konsol Google Cloud, buka halaman detail untuk aplikasi Bank of Anthos.

    Buka detail Bank of Anthos

    Logo ditampilkan di header halaman detail:

    Logo ditampilkan di bagian atas daftar detail
aplikasi.

Pembersihan

Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, Anda dapat menghapus project Google Cloud yang Anda buat untuk tutorial ini.

Menghapus project

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Langkah berikutnya