Mengubah artefak sistem

Artefak sistem mendukung sistem perangkat dengan air gap Google Distributed Cloud (GDC) dan mengelola deployment GDC. Artifact Registry pribadi GDC menyimpan artefak sistem. Ada berbagai format untuk artefak sistem, termasuk, tetapi tidak terbatas pada:

  • Image container untuk layanan terkelola Anthos, KubeVirt, dan GDC
  • Image sistem operasi (OS)
  • Format firmware
  • Template mesin virtual (VM) Golden
  • Diagram Helm

Artifact Registry berpartisipasi dalam berbagai operasi sistem GDC seperti penginstalan, upgrade, dan siklus proses resource secara aman, skalabel, dan anti-rusak.

Sebelum memulai

Untuk mengubah artefak sistem, Anda harus mendapatkan akses diagnostik. Akses diagnostik adalah mode akses istimewa yang diperlukan untuk mendukung pelanggan secara aman saat mereka mengalami masalah. Anda harus membuat tiket agar akses ini diberikan.

Mengupload image Docker

Untuk mengubah artefak sistem, Anda harus mengupload image Docker baru. Metode upload bergantung pada dua registry berikut yang menjadi tujuan pengiriman image container Anda:

Bagian berikut menunjukkan petunjuk upload untuk kedua jenis registri.

Artifact Registry di mesin bootstrap

Untuk mengupload image container ke Artifact Registry di mesin bootstrap, selesaikan langkah-langkah berikut:

  1. Pastikan Anda memiliki image Docker yang telah dimodifikasi dengan masalah yang menyebabkan gangguan telah diperbaiki.

  2. Transfer image baru ke node bootstrap di lingkungan air-gapped Anda.

  3. Login ke node bootstrap.

  4. Temukan alamat Artifact Registry di mesin bootstrap pada waktu bootstrap dan tetapkan sebagai variabel lingkungan REGISTRY_IP:

    REGISTRY=$(kubectl get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}')
    
    REGISTRY_IP=${REGISTRY#https://}
    
  5. Ambil kredensial untuk mengakses Artifact Registry. Gunakan perintah berikut untuk mengambil akun dan sandi administrator:

    ADMIN_PASS=$(kubectl -n harbor-system get secret harbor-admin \
        -o jsonpath="{.data.secret}" | base64 -d)
    
  6. Login ke Artifact Registry:

    docker login $REGISTRY_IP -u admin -p $ADMIN_PASS
    

    Pesan Login Succeeded akan dicetak untuk memverifikasi login yang berhasil ke Artifact Registry.

  7. Beri tag pada gambar baru:

    docker image tag CONTAINER_IMAGE_URL \
        $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
    

    Ganti kode berikut:

    • CONTAINER_IMAGE_URL: URL image container lokal, seperti gcr.io/repository/image:tag.
    • PROJECT_NAME: nama project Artifact Registry.
    • IMAGE_NAME: nama image container.
    • TAG: tag image container.
  8. Kirim image baru ke Artifact Registry:

    docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
    

Artifact Registry di cluster admin

Untuk mengupload image container ke Artifact Registry di cluster admin, selesaikan langkah-langkah berikut.

  1. Pastikan Anda memiliki image Docker yang telah dimodifikasi dengan masalah yang menyebabkan gangguan telah diperbaiki.

  2. Transfer image baru ke node yang memiliki akses root dengan file root kubeconfig ke cluster admin di lingkungan terisolasi Anda.

  3. Ekspor jalur file kubeconfig cluster admin sebagai variabel lingkungan:

    export ADMIN_CLUSTER_KUBECONFIG=KUBECONFIG_FILE_PATH
    

    Ganti KUBECONFIG_FILE_PATH dengan jalur ke file kubeconfig.

  4. Temukan alamat Artifact Registry dalam cluster dan tetapkan sebagai variabel lingkungan REGISTRY_IP:

    REGISTRY=$(kubectl --kubeconfig $ADMIN_CLUSTER_KUBECONFIG get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}')
    
    REGISTRY_IP=${REGISTRY#https://}
    
  5. Pastikan REGISTRY_IP berisi URL yang valid, seperti 10.200.0.36:10443:

    echo ${REGISTRY_IP}
    
  6. Periksa apakah sertifikat certificate authority (CA) ada:

    ls -al /etc/docker/certs.d/${REGISTRY_IP}/ca.crt
    

    Jika sertifikat tidak ada, buat dan konfigurasikan:

    mkdir -p /etc/docker/certs.d/${REGISTRY_IP}/
    
    chmod 755  /etc/docker/certs.d/${REGISTRY_IP}/
    
    echo $(kubectl get secret harbor-cert-secret -n istio-system -o jsonpath='{.data.ca\.crt}' --kubeconfig $ADMIN_CLUSTER_KUBECONFIG) | openssl base64 -A -d >  /etc/docker/certs.d/${REGISTRY_IP}/ca.crt
    
    chmod 755  /etc/docker/certs.d/${REGISTRY_IP}/ca.crt
    
  7. Ambil kredensial untuk mengakses Artifact Registry. Gunakan perintah berikut untuk mengambil akun dan sandi administrator:

    ADMIN_PASS=$(kubectl --kubeconfig $ADMIN_CLUSTER_KUBECONFIG \
        -n harbor-system get secret harbor-admin \
        -o jsonpath="{.data.secret}" | base64 -d)
    
  8. Login ke Artifact Registry:

    docker login $REGISTRY_IP -u admin -p $ADMIN_PASS
    

    Pesan Login Succeeded akan dicetak untuk memverifikasi login yang berhasil ke Artifact Registry.

  9. Beri tag pada gambar baru:

    docker image tag CONTAINER_IMAGE_URL \
        $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
    

    Ganti kode berikut:

    • CONTAINER_IMAGE_URL: URL image container lokal, seperti gcr.io/repository/image:tag.
    • PROJECT_NAME: nama project Artifact Registry.
    • IMAGE_NAME: nama image container.
    • TAG: tag image container.
  10. Kirim image baru ke Artifact Registry:

    docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG