Anda dapat menambahkan entri untuk layanan eksternal ke dalam registri layanan internal dari instance Service Mesh (ASM), sehingga layanan dalam instance ASM dapat mengakses layanan eksternal tersebut. Entri layanan mendeskripsikan properti seperti nama domain, port, protokol, dan titik akhir dari sebuah layanan. Topik ini menjelaskan cara membuat, memodifikasi, dan menghapus entri layanan.
Catatan penggunaan
Untuk mencegah konflik port dengan sidecar, jangan gunakan port berikut yang digunakan oleh Envoy saat Anda membuat entri layanan.
Port
Protokol
Digunakan oleh
Deskripsi
15000
TCP
Envoy
Port admin Envoy.
15001
TCP
Envoy
Port arah keluar Envoy.
15006
TCP
Envoy
Port arah masuk Envoy.
15020
HTTP
Envoy
Port yang digunakan untuk telemetri Prometheus gabungan dari proxy Istio, Envoy, dan aplikasi.
15021
HTTP
Envoy
Port yang digunakan untuk pemeriksaan kesehatan.
15090
HTTP
Envoy
Port yang digunakan untuk telemetri Prometheus Envoy.
Tabel berikut menjelaskan konvensi penamaan port dalam entri layanan untuk layanan eksternal.
Protokol
Nama port
Nama port dengan akhiran
HTTP
http
http-<Akhiran>
HTTP2
http2
http2-<Akhiran>
HTTPS
https
https-<Akhiran>
TLS
tls
tls-<Akhiran>
gRPC
grpc
grpc-<Akhiran>
TCP
tcp
tcp-<Akhiran>
UDP
UDP
udp-<Akhiran>
Mongo
mongo
mongo-<Akhiran>
MySQL
mysql
mysql-<Akhiran>
Redis
redis
redis-<Akhiran>
Perhatikan item berikut jika Anda menggunakan HTTP, HTTPS, TLS, atau TCP:
Jika Anda menggunakan HTTP, HTTPS, atau TLS, Anda harus menentukan host dalam entri layanan.
apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: aliyun spec: hosts: - www.aliyun.com - aliyun.com ports: - number: 443 name: https protocol: HTTPS resolution: DNS location: MESH_EXTERNALJika Anda menggunakan TCP, Anda harus menentukan rentang alamat IP dalam entri layanan.
apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: mysql-external spec: hosts: - mysql-01.foo.bar addresses: - 10.0.0.5/32 - 10.0.0.6/32 ports: - name: tcp number: 3306 protocol: tcp location: MESH_EXTERNAL
Jika beberapa layanan eksternal berbagi port TCP yang sama, Anda harus membedakan alamat IP dari layanan-layanan tersebut.
Layanan Eksternal 1
apiVersion: networking.istio.io/v1beta1 kind: ServiceEntry metadata: name: external-svc-1 namespace: default spec: hosts: - fqdna.fqdn.com addresses: - 10.0.0.0 location: MESH_EXTERNAL ports: - name: TCP number: 3306 protocol: TCP resolution: DNSLayanan Eksternal 2
apiVersion: networking.istio.io/v1beta1 kind: ServiceEntry metadata: name: external-svc-2 namespace: default spec: hosts: - fqdnb.fqdn.com addresses: - 10.1.0.0 location: MESH_EXTERNAL ports: - name: TCP number: 3306 protocol: TCP resolution: DNS
Secara default, entri yang Anda buat untuk layanan eksternal dalam instance ASM berlaku di semua namespace. Untuk membatasi akses hanya pada layanan dalam namespace tempat Anda membuat entri untuk layanan eksternal, Anda dapat menambahkan parameter exportTo dan mengatur parameternya ke "." saat Anda membuat entri layanan.
apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: aliyun spec: hosts: - www.aliyun.com exportTo: - "." ports: - number: 443 name: https protocol: HTTPS resolution: DNS location: MESH_EXTERNALKami merekomendasikan untuk mengaktifkan fitur resolusi Domain Name System (DNS). Fitur resolusi DNS mengabaikan alamat IP tujuan asli, mengarahkan lalu lintas ke host yang ditentukan, dan kemudian melakukan Kueri DNS untuk mendapatkan alamat IP dari host yang ditentukan.
apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: aliyun spec: hosts: - '*.aliyun.com' addresses: - 192.168.0.0 - 172.16.0.0 location: MESH_EXTERNAL ports: - number: 443 protocol: https name: https resolution: DNSresolution: Untuk mengaktifkan resolusi DNS, atur parameter ini ke DNS. Untuk menonaktifkan resolusi DNS, atur parameter ini ke NONE.
Buat entri layanan
Masuk ke Konsol ASM. Di panel navigasi sisi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sisi kiri, pilih . Di halaman yang muncul, klik Create from YAML.
Di halaman Create, pilih namespace dan template skenario, modifikasi konfigurasi di editor kode YAML sesuai dengan kebutuhan bisnis Anda, lalu klik Create.
Untuk informasi lebih lanjut tentang bidang, lihat Entri Layanan.
Modifikasi entri layanan
Di halaman detail instance ASM, pilih di panel navigasi sisi kiri.
Di halaman External Service(ServiceEntry), temukan entri layanan yang ingin Anda modifikasi dan klik YAML di kolom Actions.
Di kotak dialog Edit, modifikasi konfigurasi entri layanan dan klik OK.
Delete a service entry
Di halaman detail instance ASM, pilih di panel navigasi sisi kiri.
Di halaman External Service(ServiceEntry), temukan entri layanan yang ingin Anda hapus dan klik Delete di kolom Actions.
Di pesan Submit, klik OK.