Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud Service Mesh:Connect to Consul service registries

Son Güncelleme:Oct 07, 2026

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

  1. ASM örnek kimliğini alın.

    1. ASM konsolu üzerinde oturum açın. Sol gezinme bölmesinde Service Mesh > Mesh Management seçeneğini belirleyin.

    2. Mesh Management sayfasında, hedef örneğinizin kimliğini Name/ID sütununda bulun.

  2. Küme bölge kimliğini alın.

    1. ACK konsolu üzerinde oturum açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

    2. Clusters sayfasında, kümenizin adına tıklayın. Sol gezinme bölmesinde Cluster Information seçeneğine tıklayın.

    3. 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.

  3. 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

  1. 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.

  2. Yerel makinenize Helm yükleyin. Daha fazla bilgi için bkz. Helm belgeleri.

    Not

    kubectl ile kümeye bağlandıktan sonra Helm istemcisi, kümeye bağlanmak için KubeConfig dosyasını otomatik olarak kullanır.

  3. asm-se-syncer Helm grafiğini yerel makinenize indirin ve sıkıştırmasını açın.

  4. 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


    Description


    name


    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ğer consul değ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"
      }
    ]
  5. 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

  1. ASM bileşeninin yükleme durumunu kontrol edin.

    1. ACK konsolu üzerinde oturum açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

    2. Clusters sayfasında, kümenizin adına tıklayın. Sol gezinme bölmesinde Workloads > Deployments seçeneğine tıklayın.

    3. Deployments sayfasında, asm-serviceregistry-syncer adlı bileşeni bulun.

      Bileşen 1/1 hazır durumundaysa doğru şekilde çalışıyor demektir.

  2. service entry kaynaklarının senkronizasyon durumunu kontrol edin.

    1. ASM konsolu üzerinde oturum açın. Sol gezinme bölmesinde Service Mesh > Mesh Management seçeneğini belirleyin.

    2. Mesh Management sayfasında, ASM örneğinin adına tıklayın. Sol gezinme bölmesinde Cluster & Workload Management (Data Plane) > External Service(ServiceEntry) seçeneğini belirleyin.

    3. External Service(ServiceEntry) sayfasında, Consul'a kayıtlı hizmetlerin Service Mesh öğesine senkronize edildiğini doğrulayın.

      Not
      • External Service(ServiceEntry) sayfasında, Consul hizmetlerinin adları [ön ek]-[Consul'daki hizmet adı] biçimini izler. Ön ek, prefix parametresi için belirtilen değerdir.

      • External Service(ServiceEntry) sayfasında, Consul hizmetlerinin ad alanı, belirttiğiniz toNamespace parametresinin 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 hosts alanındaki ana bilgisayar adını ve bağlantı noktasını kullanarak hizmeti çağırın.

    1. DNS proxy'sini etkinleştirin. Daha fazla bilgi için bkz. ASM örneğinde DNS proxy özelliğini kullanma.

    2. Hizmeti çağırmak için ana bilgisayar adını ve bağlantı noktasını alın.

      1. ASM konsolu üzerinde oturum açın. Sol gezinme bölmesinde Service Mesh > Mesh Management seçeneğini belirleyin.

      2. Mesh Management sayfasında, ASM örneğinin adına tıklayın. Sol gezinme bölmesinde Cluster & Workload Management (Data Plane) > External Service(ServiceEntry) seçeneğini belirleyin.

      3. 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, hosts ana yapılandırma öğesi pro-qf-test olarak ayarlanmıştır ve bağlantı noktası numarası (number) 80 olarak 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 endpoints alanındaki adresi kullanarak hizmeti çağırın.

    1. ASM konsolu üzerinde oturum açın. Sol gezinme bölmesinde Service Mesh > Mesh Management seçeneğini belirleyin.

    2. Mesh Management sayfasında, ASM örneğinin adına tıklayın. Sol gezinme bölmesinde Cluster & Workload Management (Data Plane) > External Service(ServiceEntry) seçeneğini belirleyin.

    3. 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.endpoints altındaki address alanı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