• Русский
  • Обзор конфигурации мультикластерной среды

    Для настройки мультикластерной топологии необходимо выполнить следующие действия:

    • Установить плагин Alauda Container Platform Networking для Multus в каждом кластере, при этом kube-ovn должен быть версии v4.1.5 или выше.
    • Установить Alauda Service Mesh Operator в каждом кластере.
    • API Server в каждом кластере должен быть доступен для других кластеров в mesh.
    • Создать или иметь доступ к корневым и промежуточным сертификатам для каждого кластера.
    • Применить сертификаты безопасности для каждого кластера.
    • Установить Istio в каждом кластере.

    Создание сертификатов для мультикластерного mesh

    Создайте корневые и промежуточные сертификаты центра сертификации (CA) для двух кластеров.

    Требования

    • OpenSSL установлен локально.

    Процедура

    Создание корневого сертификата CA

    1. Создайте ключ для корневого сертификата, выполнив следующую команду:

      openssl genrsa -out root-key.pem 4096
    2. Создайте конфигурационный файл сертификата OpenSSL с именем root-ca.conf для корневых сертификатов CA:

      Пример конфигурационного файла корневого сертификата
      encrypt_key = no
      prompt = no
      utf8 = yes
      default_md = sha256
      default_bits = 4096
      req_extensions = req_ext
      x509_extensions = req_ext
      distinguished_name = req_dn
      [ req_ext ]
      subjectKeyIdentifier = hash
      basicConstraints = critical, CA:true
      keyUsage = critical, digitalSignature, nonRepudiation, keyEncipherment, keyCertSign
      [ req_dn ]
      O = Istio
      CN = Root CA
    3. Создайте запрос на подпись сертификата, выполнив следующую команду:

      openssl req -sha256 -new -key root-key.pem \
          -config root-ca.conf \
          -out root-cert.csr
    4. Создайте общий корневой сертификат, выполнив следующую команду:

      openssl x509 -req -sha256 -days 3650 \
          -signkey root-key.pem \
          -extensions req_ext -extfile root-ca.conf \
          -in root-cert.csr \
          -out root-cert.pem

    Создание промежуточного сертификата CA для кластера East

    1. Создайте каталог с именем east, выполнив следующую команду:

      mkdir east
    2. Создайте ключ для промежуточного сертификата для кластера East, выполнив следующую команду:

      openssl genrsa -out east/ca-key.pem 4096
    3. Создайте конфигурационный файл OpenSSL с именем intermediate.conf в каталоге east/ для промежуточного сертификата кластера East. Скопируйте следующий пример файла и сохраните локально:

      Пример конфигурационного файла
      [ req ]
      encrypt_key = no
      prompt = no
      utf8 = yes
      default_md = sha256
      default_bits = 4096
      req_extensions = req_ext
      x509_extensions = req_ext
      distinguished_name = req_dn
      [ req_ext ]
      subjectKeyIdentifier = hash
      basicConstraints = critical, CA:true, pathlen:0
      keyUsage = critical, digitalSignature, nonRepudiation, keyEncipherment, keyCertSign
      subjectAltName=@san
      [ san ]
      DNS.1 = istiod.istio-system.svc
      [ req_dn ]
      O = Istio
      CN = Intermediate CA
      L = east
    4. Создайте запрос на подпись сертификата, выполнив следующую команду:

      openssl req -new -config east/intermediate.conf \
        -key east/ca-key.pem \
        -out east/cluster-ca.csr
    5. Создайте промежуточный сертификат CA для кластера East, выполнив следующую команду:

      openssl x509 -req -sha256 -days 3650 \
        -CA root-cert.pem \
        -CAkey root-key.pem -CAcreateserial \
        -extensions req_ext -extfile east/intermediate.conf \
        -in east/cluster-ca.csr \
        -out east/ca-cert.pem
    6. Создайте цепочку сертификатов из промежуточного и корневого сертификатов CA для кластера east, выполнив следующую команду:

      cat east/ca-cert.pem root-cert.pem > east/cert-chain.pem && cp root-cert.pem east

    Создание промежуточного сертификата CA для кластера West

    1. Создайте каталог с именем west, выполнив следующую команду:

      mkdir west
    2. Создайте ключ для промежуточного сертификата для кластера West, выполнив следующую команду:

      openssl genrsa -out west/ca-key.pem 4096
    3. Создайте конфигурационный файл OpenSSL с именем intermediate.conf в каталоге west/ для промежуточного сертификата кластера West. Скопируйте следующий пример файла и сохраните локально:

      Пример конфигурационного файла
      [ req ]
      encrypt_key = no
      prompt = no
      utf8 = yes
      default_md = sha256
      default_bits = 4096
      req_extensions = req_ext
      x509_extensions = req_ext
      distinguished_name = req_dn
      [ req_ext ]
      subjectKeyIdentifier = hash
      basicConstraints = critical, CA:true, pathlen:0
      keyUsage = critical, digitalSignature, nonRepudiation, keyEncipherment, keyCertSign
      subjectAltName=@san
      [ san ]
      DNS.1 = istiod.istio-system.svc
      [ req_dn ]
      O = Istio
      CN = Intermediate CA
      L = west
    4. Создайте запрос на подпись сертификата, выполнив следующую команду:

      openssl req -new -config west/intermediate.conf \
        -key west/ca-key.pem \
        -out west/cluster-ca.csr
    5. Создайте промежуточный сертификат CA для кластера West, выполнив следующую команду:

      openssl x509 -req -sha256 -days 3650 \
        -CA root-cert.pem \
        -CAkey root-key.pem -CAcreateserial \
        -extensions req_ext -extfile west/intermediate.conf \
        -in west/cluster-ca.csr \
        -out west/ca-cert.pem
    6. Создайте цепочку сертификатов из промежуточного и корневого сертификатов CA для кластера west, выполнив следующую команду:

      cat west/ca-cert.pem root-cert.pem > west/cert-chain.pem && cp root-cert.pem west

    Применение сертификатов к мультисетевой мультикластерной mesh

    Примените корневые и промежуточные сертификаты центра сертификации (CA) к кластерам в мультисетевой мультикластерной топологии.

    NOTE

    В этой процедуре CLUSTER1 — это кластер East, а CLUSTER2 — кластер West.

    Требования

    • У вас есть доступ к двум кластерам с поддержкой внешнего балансировщика нагрузки.
    • Вы создали корневой сертификат CA и промежуточные сертификаты CA для каждого кластера или они были предоставлены вам.

    Процедура

    Переменные окружения

    Для упрощения инструкций далее будут использоваться следующие переменные окружения:

    ПеременнаяПсевдонимОписание
    CTX_CLUSTER1EastИмя контекста в стандартном файле конфигурации Kubernetes, используемом для доступа к кластеру cluster1.
    CTX_CLUSTER2WestИмя контекста в стандартном файле конфигурации Kubernetes, используемом для доступа к кластеру cluster2.

    Установите две переменные перед продолжением:

    export CTX_CLUSTER1=<your cluster1 context>
    export CTX_CLUSTER2=<your cluster2 context>

    Применение сертификатов к кластеру East мультикластерной топологии

    1. Создайте пространство имён с именем istio-system, выполнив следующую команду:

      kubectl --context "${CTX_CLUSTER1}" create namespace istio-system
    2. Создайте сертификаты CA, цепочку сертификатов и приватный ключ для Istio в кластере East, выполнив следующую команду:

      kubectl get secret -n istio-system --context "${CTX_CLUSTER1}" cacerts || kubectl create secret generic cacerts -n istio-system --context "${CTX_CLUSTER1}" \
        --from-file=east/ca-cert.pem \
        --from-file=east/ca-key.pem \
        --from-file=east/root-cert.pem \
        --from-file=east/cert-chain.pem
      NOTE

      Если вы следовали инструкциям в разделе Создание сертификатов для мультикластерного mesh, ваши сертификаты будут находиться в каталоге east/. Если ваши сертификаты находятся в другом каталоге, измените синтаксис соответствующим образом.

    Применение сертификатов к кластеру West мультикластерной топологии

    1. Создайте пространство имён с именем istio-system, выполнив следующую команду:

      kubectl --context "${CTX_CLUSTER2}" create namespace istio-system
    2. Создайте сертификаты CA, цепочку сертификатов и приватный ключ для Istio в кластере West, выполнив следующую команду:

      kubectl get secret -n istio-system --context "${CTX_CLUSTER2}" cacerts || kubectl create secret generic cacerts -n istio-system --context "${CTX_CLUSTER2}" \
        --from-file=west/ca-cert.pem \
        --from-file=west/ca-key.pem \
        --from-file=west/root-cert.pem \
        --from-file=west/cert-chain.pem
      NOTE

      Если вы следовали инструкциям в разделе Создание сертификатов для мультикластерного mesh, ваши сертификаты будут находиться в каталоге west/. Если ваши сертификаты находятся в другом каталоге, измените синтаксис соответствующим образом.

    Следующие шаги

    Установите Istio во всех кластерах, входящих в состав mesh-топологии.