Jika kode sumber atau dependensi Anda (seperti repositori Maven) berada di dalam virtual private cloud (VPC) atau pusat data pribadi, Anda memerlukan cara untuk membuat gambar kontainer tanpa mengarahkan lalu lintas melalui internet publik. Container Registry Enterprise Edition mendukung pembuatan gambar berbasis VPC, sehingga Anda dapat mengakses repositori GitLab pribadi dan layanan internal sepenuhnya melalui koneksi jaringan pribadi.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans Container Registry Enterprise Edition. Lihat Gunakan instans Container Registry Enterprise Edition untuk dorong dan tarik gambar.
Layanan GitLab yang dikelola sendiri di VPC atau pusat data di wilayah yang sama dengan instans Container Registry Enterprise Edition Anda.
Jika GitLab diakses melalui alamat IP instans Elastic Compute Service (ECS), tambahkan aturan masuk ke grup keamanan ECS yang mengizinkan lalu lintas dari
100.104.0.0/16.Jika GitLab diakses melalui Server Load Balancer (SLB), tidak diperlukan konfigurasi grup keamanan tambahan.
Jika layanan GitLab atau layanan berbasis VPC Anda berada di pusat data yang terhubung melalui Express Connect:
Blok CIDR pusat data tidak boleh tumpang tindih dengan
100.104.0.0/16.Konfigurasikan entri rute balik untuk
100.104.0.0/16di Virtual Border Router (VBR) dan router pusat data Anda. Lihat Apa itu Express Connect dan VBR.
VPC dan vSwitch yang dibuat di zona yang mendukung mode VPC. Tabel berikut mencantumkan zona yang didukung.
Zona yang didukung
| Jenis cloud | Wilayah | Zona |
|---|---|---|
| Cloud publik Alibaba Cloud | Tiongkok (Beijing) | cn-beijing-c, cn-beijing-d, cn-beijing-e, cn-beijing-f, cn-beijing-g, cn-beijing-h, cn-beijing-i, cn-beijing-j, cn-beijing-k |
| Tiongkok (Hangzhou) | cn-hangzhou-e, cn-hangzhou-f, cn-hangzhou-g, cn-hangzhou-h, cn-hangzhou-i, cn-hangzhou-j, cn-hangzhou-k | |
| Tiongkok (Shenzhen) | cn-shenzhen-a, cn-shenzhen-b, cn-shenzhen-c, cn-shenzhen-d, cn-shenzhen-e, cn-shenzhen-f | |
| Tiongkok (Shanghai) | cn-shanghai-a, cn-shanghai-b, cn-shanghai-c, cn-shanghai-d, cn-shanghai-e, cn-shanghai-f, cn-shanghai-g, cn-shanghai-i | |
| Tiongkok (Zhangjiakou) | cn-zhangjiakou-a, cn-zhangjiakou-b, cn-zhangjiakou-c | |
| Tiongkok (Hong Kong) | cn-hongkong-b, cn-hongkong-c, cn-hongkong-d | |
| Singapura | ap-southeast-1a, ap-southeast-1b, ap-southeast-1c | |
| Indonesia (Jakarta) | ap-southeast-5a, ap-southeast-5b | |
| AS (Virginia) | us-east-1a, us-east-1b | |
| AS (Silicon Valley) | us-west-1a, us-west-1b | |
| Inggris (London) | eu-west-1a, eu-west-1b | |
| Jerman (Frankfurt) | eu-central-1a, eu-central-1b | |
| Jepang (Tokyo) | ap-northeast-1a, ap-northeast-1b | |
| Tiongkok (Chengdu) | cn-chengdu-a, cn-chengdu-b | |
| Tiongkok (Heyuan) | cn-heyuan-a, cn-heyuan-b | |
| Alibaba Finance Cloud | Tiongkok (Hangzhou) | cn-hangzhou-finance-h, cn-hangzhou-finance-i, cn-hangzhou-finance-j, cn-hangzhou-finance-k |
Cara kerja
Saat Anda mengikat repositori kode sumber berbasis VPC, Container Registry memanggil operasi API ECS untuk membuat managed security group. Grup keamanan ini menyediakan jalur jaringan bagi layanan Container Registry untuk menjangkau instans GitLab yang Anda kelola sendiri. Container Registry kemudian mengikat antarmuka jaringan elastis (ENI) pada vSwitch Anda ke instans Container Registry Enterprise Edition, sehingga koneksi berhasil dibuat.
Managed security group sepenuhnya dikendalikan oleh Container Registry. Anda dapat melihatnya, tetapi tidak dapat mengubahnya. Grup ini menolak semua lalu lintas masuk dan hanya mengizinkan lalu lintas keluar ke titik akhir pribadi layanan GitLab dan repositori Maven Anda.
Langkah 1: Buat tautan VPC
Masuk ke Konsol Container Registry.
Pada bilah navigasi atas, pilih wilayah.
Pada panel navigasi kiri, klik Instances.
Pada halaman Instances, klik kartu instans Container Registry Enterprise Edition yang dituju.
Pada halaman Overview, pilih Repository > Code Source.
Pada halaman Code Source, temukan GitLab dan klik Manage Link di kolom Actions.
Pada kotak dialog Manage Link, konfigurasikan parameter berikut dan klik Create.
Parameter Deskripsi Contoh Private IP address of the GitLab Server Alamat IP privat repositori kode sumber GitLab yang dikelola sendiri 192.168.1.10Other IP addresses that need to be allowed Titik akhir pribadi VPC tambahan yang perlu diizinkan untuk akses arah keluar, seperti repositori Maven 192.168.1.20Existing VPC VPC yang dibuat pada prasyarat vpc-bp1xxxxxxxxxxvSwitch vSwitch yang dibuat pada prasyarat vsw-bp1xxxxxxxxxx
Langkah 2: Ikatan repositori kode sumber GitLab
Pada halaman Code Source, temukan GitLab dan klik Bind Account di kolom Actions.
Pada kotak dialog Private GitLab, konfigurasikan parameter berikut dan klik Confirm.
Parameter Deskripsi Contoh Network Type Pilih VPC — Link Information Tautan VPC yang dibuat pada Langkah 1 — Endpoint URL login layanan GitLab. Gunakan URL privat untuk instans GitLab yang dikelola sendiri; gunakan URL publik untuk layanan GitLab publik. http://192.168.1.10Username Username GitLab Anda alicePrivate Token Token akses GitLab Anda. Lihat Ikatan platform hosting kode sumber untuk cara membuatnya. —
Saat status Bound muncul di kolom Status untuk GitLab, repositori berhasil terhubung ke instans Container Registry Enterprise Edition Anda.
Langkah 3: Buat gambar di VPC
Sebelum mengirimkan tugas build, kosongkan centang pada opsi Build With Servers Deployed Outside Chinese Mainland. Jika opsi ini tetap dipilih, proses build akan menggunakan server di luar Tiongkok daratan, yang tidak dapat menjangkau sumber daya VPC Anda.
Dengan repositori GitLab yang telah diikat, picu pembuatan gambar. Lihat Gunakan instans Container Registry Enterprise Edition untuk membuat gambar untuk alur kerja build penuh.