Service Mesh ASM, mikroservislerin ASM'ye geçişini kolaylaştırmak için Consul hizmet kayıt defteriyle entegrasyonu destekler. Bu konuda, bir Consul hizmet kayıt defterinin ASM ile nasıl entegre edileceği açıklanmaktadır.
Önkoşullar
ASM örneğinizin v1.7.5.31-g28ec7490-aliyun veya daha yeni bir sürümde çalışması gerekir.
Consul bir hizmet kayıt defteri olarak dağıtılmış olmalıdır. Daha fazla bilgi için bkz. Installing Consul on Kubernetes.
Service Mesh öğesine eklenen Kubernetes kümesindeki podların Consul sunucu uç noktasına erişebilmesi gerekir. Örneğin, Consul sunucusu aynı Kubernetes kümesine yüklenmiş ve bir genel uç nokta açmış veya erişilebilir bir dahili uç nokta sağlamış olabilir.
Web, Web2 ve yerleşik Consul hizmeti dahil olmak üzere örnek hizmetler Consul'a kaydedilmiş olmalıdır. Daha fazla bilgi için bkz. Services.
Arka plan
ASM, Service Mesh içindeki hizmetlerin Service Mesh dışındaki hizmetleri çağırmasına olanak tanıyarak mikroservislerin ASM'ye geçişini kolaylaştıran bir Consul hizmet kayıt defterine bağlanma özelliği sağlar. ASM, Service Mesh içindeki hizmetleri Consul hizmet kayıt defterine otomatik olarak kaydetmez. Service Mesh dışındaki hizmetlerin hizmet ağı içindeki hizmetleri çağırabilmesi için, Service Mesh içindeki hizmetleri Consul hizmet kayıt defterine manuel olarak kaydetmeniz gerekir.
1. Adım: ASM-se-syncer yapılandırmasını alma
-
ASM örnek kimliğini alın.
ASM konsolu üzerinde oturum açın. Sol gezinme bölmesinde seçeneğini belirleyin.
Mesh Management sayfasında, hedef örneğinizin kimliğini Name/ID sütununda bulun.
-
Küme bölge kimliğini alın.
ACK konsolu üzerinde oturum açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.
Clusters sayfasında, kümenizin adına tıklayın. Sol gezinme bölmesinde Cluster Information seçeneğine tıklayın.
Basic Information bölümünde, kümenin bölgesini görüntüleyin. Örneğin, bölge Çin (Pekin) ise bölge kimliği cn-beijing olur. Bölgeler hakkında daha fazla bilgi için bkz. Desteklenen bölgeler.
Bir AccessKey ID ve AccessKey gizli anahtarı alın. Daha fazla bilgi için bkz. AccessKey çifti oluşturma.
2. Adım: ASM-se-syncer yükleme
kubectl kullanarak kümenize bağlanın. Daha fazla bilgi için bkz. Kümenin kubeconfig dosyasını alma ve kubectl ile kümeye bağlanma.
-
Yerel makinenize Helm yükleyin. Daha fazla bilgi için bkz. Helm belgeleri.
Notkubectl ile kümeye bağlandıktan sonra Helm istemcisi, kümeye bağlanmak için KubeConfig dosyasını otomatik olarak kullanır.
asm-se-syncer Helm grafiğini yerel makinenize indirin ve sıkıştırmasını açın.
-
asm-se-syncer klasörüne girin ve values.yaml dosyasını bulun. values.yaml dosyasında ASM Kimliği, küme bölge kimliği, AccessKey ID ve AccessKey gizli anahtarını ekleyin, aşağıdaki Consul hizmet bilgilerini değiştirin ve ardından values.yaml dosyasını kaydedin.
[ { "name": "consul-test", "prefix": "consul-", "type": "consul", "endpoint": "http://consul-server.consul:8500", "toNamespace": "default" } ]
Parameter
Descriptionname
Hizmet kayıt defteri için benzersiz bir ad.prefix
Oluşturulan service entry kaynaklarının adları için ön ek.type
Hizmet kayıt defterinin türü. Desteklenen tek değerconsuldeğeridir.endpoint
Hizmet kayıt defterinin uç nokta adresi.toNamespace
Oluşturulan service entry kaynaklarının oluşturulduğu ad alanı. Ad alanı yoksa otomatik olarak oluşturulur.Birden çok Consul hizmet kayıt defterine bağlanmak için her bir kayıt defterinin yapılandırmasını values.yaml dosyasına ekleyin. Ardından, values.yaml dosyasını kaydedin.
[ { "name": "consul-test01", "prefix": "consul01-", "type": "consul", "endpoint": "http://consul-server01.consul:8500", "toNamespace": "default" }, { "name": "consul-test02", "prefix": "consul02-", "type": "consul", "endpoint": "http://consul-server02.consul:8500", "toNamespace": "default" } ] -
ASM-se-syncer'ı yüklemek için aşağıdaki komutu çalıştırın.
helm install -f values.yaml se-syncer ./ASM-se-syncer yüklendikten sonra ASM, Consul hizmet kayıt defterine otomatik olarak bağlanır, ACK kümesine asm-serviceregistry-syncer bileşenini yükler ve hizmetleri Consul'dan Service Mesh öğesine senkronize eder.
3. Adım: Consul entegrasyonunu doğrulama
-
ASM bileşeninin yükleme durumunu kontrol edin.
ACK konsolu üzerinde oturum açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.
Clusters sayfasında, kümenizin adına tıklayın. Sol gezinme bölmesinde seçeneğine tıklayın.
-
Deployments sayfasında, asm-serviceregistry-syncer adlı bileşeni bulun.
Bileşen 1/1 hazır durumundaysa doğru şekilde çalışıyor demektir.
-
service entry kaynaklarının senkronizasyon durumunu kontrol edin.
ASM konsolu üzerinde oturum açın. Sol gezinme bölmesinde seçeneğini belirleyin.
Mesh Management sayfasında, ASM örneğinin adına tıklayın. Sol gezinme bölmesinde seçeneğini belirleyin.
-
External Service(ServiceEntry) sayfasında, Consul'a kayıtlı hizmetlerin Service Mesh öğesine senkronize edildiğini doğrulayın.
NotExternal Service(ServiceEntry) sayfasında, Consul hizmetlerinin adları
[ön ek]-[Consul'daki hizmet adı]biçimini izler. Ön ek,prefixparametresi için belirtilen değerdir.External Service(ServiceEntry) sayfasında, Consul hizmetlerinin ad alanı, belirttiğiniz
toNamespaceparametresinin değeridir.
SSS
Senkronize edilen bir hizmet nasıl çağrılır?
Çağrı yapan hizmetin kümesi hizmet ağı veri düzleminin bir parçası olduktan sonra, senkronize edilen hizmeti aşağıdaki yöntemlerden biriyle çağırabilirsiniz:
-
Yöntem 1: DNS proxy'sini etkinleştirin ve service entry öğesinin
hostsalanındaki ana bilgisayar adını ve bağlantı noktasını kullanarak hizmeti çağırın.DNS proxy'sini etkinleştirin. Daha fazla bilgi için bkz. ASM örneğinde DNS proxy özelliğini kullanma.
-
Hizmeti çağırmak için ana bilgisayar adını ve bağlantı noktasını alın.
ASM konsolu üzerinde oturum açın. Sol gezinme bölmesinde seçeneğini belirleyin.
Mesh Management sayfasında, ASM örneğinin adına tıklayın. Sol gezinme bölmesinde seçeneğini belirleyin.
-
External Service(ServiceEntry) sayfasında, hedef service entry öğesini bulun ve Operator sütununda View YAML seçeneğine tıklayın.
Edit iletişim kutusunda ana bilgisayar adını ve bağlantı noktasını alın ve hizmeti çağırmak için http://<ana bilgisayar adı>:<bağlantı noktası> adresini kullanın. ServiceEntry YAML dosyasında,
hostsana yapılandırma öğesipro-qf-testolarak ayarlanmıştır ve bağlantı noktası numarası (number)80olarak ayarlanmıştır.- apiVersion: istio.alibabacloud.com, controller: true kind: ASMServiceRegistry name: default uid: 5d301b4e-39bc-46b5-xxx resourceVersion: '432158678' selfLink: >- /apis/networking.istio.io/v1beta1/naxxx uid: e446b651-be82-4e13-99xxx spec: addresses: - 172.30.xxx endpoints: - address: 172.xxx ports: http: 80 hosts: - pro-qf-test ports: - name: http number: 80 protocol: HTTP resolution: STATIC
-
Yöntem 2: External Service(ServiceEntry) öğesinin
endpointsalanındaki adresi kullanarak hizmeti çağırın.ASM konsolu üzerinde oturum açın. Sol gezinme bölmesinde seçeneğini belirleyin.
Mesh Management sayfasında, ASM örneğinin adına tıklayın. Sol gezinme bölmesinde seçeneğini belirleyin.
-
External Service(ServiceEntry) sayfasında, hedef service entry öğesini bulun ve Operator sütununda View YAML seçeneğine tıklayın.
Edit iletişim kutusunda adresi bulun. http://<adres> biçimini kullanarak hizmeti çağırın. YAML'de, ana yapılandırma öğesi
spec.endpointsaltındakiaddressalanıdır.- apiVersion: istio.alibacloud.com controller: true kind: ASMServiceRegistry name: default uid: 5d301b4e-39bc-46b5-xxx resourceVersion: '432158678' selfLink: >- /apis/networking.istio.io/v1beta1/naxxx uid: e446b651-be82-4e13-99xxx spec: addresses: - 172.30.xxx endpoints: - address: 172.xxx ports: http: 80 hosts: - pro-qf-test ports: - name: http number: 80 protocol: HTTP resolution: STATIC
Hizmet senkronizasyonu nasıl çalışır?
Consul'a kayıtlı hizmetler, Istio'ya service entry kaynakları olarak otomatik olarak senkronize edilir. Bir hizmet Consul'da silindiğinde veya güncellendiğinde, değişiklik Istio'daki ilgili service entry öğesine otomatik olarak yansıtılır.
Consul entegrasyonu nasıl devre dışı bırakılır?
Consul senkronizasyon kaynaklarını silmek için aşağıdaki komutu çalıştırın.
helm uninstall se-syncer