• Русский
  • Развертывание приложения Bookinfo в ambient режиме

    Вы можете развернуть пример приложения Bookinfo в ambient режиме без инъекции sidecar, используя прокси ZTunnel. Для справки об приложении Bookinfo смотрите Deploying the Bookinfo Application.

    Предварительные требования

    • Активная сессия ACP CLI (kubectl) с правами администратора кластера с ролью cluster-admin.
    • Локально установлен istioctl для выполнения этих инструкций.
    • Установлен Alauda Service Mesh Operator версии 2.1.1 или выше, создан ресурс Istio, и Operator развернул Istio.
    • Создан ресурс IstioCNI, и Operator развернул необходимые поды IstioCNI.
    • Создан ресурс ZTunnel, и Operator развернул необходимые поды ZTunnel.

    Процедура

    1. Создайте пространство имён bookinfo:

      kubectl create namespace bookinfo
    2. Добавьте метку istio-discovery=enabled к пространству имён bookinfo:

      kubectl label namespace bookinfo istio-discovery=enabled
    3. Разверните приложение Bookinfo:

      kubectl apply -n bookinfo -f https://raw.githubusercontent.com/istio/istio/refs/heads/master/samples/bookinfo/platform/kube/bookinfo.yaml

      Примените YAML-файл bookinfo-versions для создания нескольких версий сервисов Bookinfo:

      kubectl apply -n bookinfo -f https://raw.githubusercontent.com/istio/istio/refs/heads/master/samples/bookinfo/platform/kube/bookinfo-versions.yaml
    4. Проверьте, что поды Bookinfo запущены:

      kubectl get pods -n bookinfo

      Пример вывода

      NAME                              READY   STATUS    RESTARTS   AGE
      details-v1-569946bc86-f5xks       1/1     Running   0          2m30s
      productpage-v1-6c76dd65f7-tk5mr   1/1     Running   0          2m29s
      ratings-v1-5fd569d7c8-5x778       1/1     Running   0          2m30s
      reviews-v1-7668bf774d-qvpjh       1/1     Running   0          2m30s
      reviews-v2-55dd985686-bxv5v       1/1     Running   0          2m29s
      reviews-v3-5d7d6bddd8-2wr5w       1/1     Running   0          2m29s
    5. Убедитесь, что приложение Bookinfo отвечает:

      kubectl exec "$(kubectl get pod -l app=ratings -n bookinfo \
        -o jsonpath='{.items[0].metadata.name}')" \
        -c ratings -n bookinfo \
        -- curl -sS productpage:9080/productpage | grep -o "<title>.*</title>"

      Пример вывода

      <title>Simple Bookstore App</title>
    6. Зарегистрируйте приложение Bookinfo в ambient mesh, добавив метку либо ко всему пространству имён, либо к отдельным подам:

      • Чтобы включить все рабочие нагрузки в пространстве имён bookinfo:

        kubectl label namespace bookinfo istio.io/dataplane-mode=ambient
      • Чтобы включить только определённые рабочие нагрузки, примените метку istio.io/dataplane-mode=ambient непосредственно к отдельным подам. Подробнее о метках для добавления или исключения рабочих нагрузок из mesh смотрите в разделе Additional resources.

        NOTE

        Регистрация рабочих нагрузок в ambient mesh не требует перезапуска или повторного развертывания подов приложения. В отличие от режима sidecar, количество контейнеров в каждом поде остаётся неизменным.

    7. Подтвердите, что прокси ZTunnel успешно установил слушающие сокеты в пространствах имён сети подов:

      istioctl -n ztunnel ztunnel-config workloads

      После добавления пространства имён bookinfo в Ambient mesh вы увидите протокол HBONE.

      Пример вывода

      NAMESPACE    POD NAME                        ADDRESS    NODE           WAYPOINT PROTOCOL
      bookinfo     details-v1-569946bc86-f5xks     10.3.0.143 192.168.131.32 None     HBONE
      bookinfo     productpage-v1-6c76dd65f7-tk5mr 10.3.0.148 192.168.131.32 None     HBONE
      bookinfo     ratings-v1-5fd569d7c8-5x778     10.3.0.144 192.168.131.32 None     HBONE
      bookinfo     reviews-v1-7668bf774d-qvpjh     10.3.0.145 192.168.131.32 None     HBONE
      bookinfo     reviews-v2-55dd985686-bxv5v     10.3.0.146 192.168.131.32 None     HBONE
      bookinfo     reviews-v3-5d7d6bddd8-2wr5w     10.3.0.147 192.168.131.32 None     HBONE
      istio-cni    istio-cni-node-vfrbr            10.3.0.140 192.168.131.32 None     TCP
      istio-system istiod-57f9449cdd-56gl8         10.3.0.141 192.168.131.32 None     TCP
      ztunnel      ztunnel-lf7c9                   10.3.0.142 192.168.131.32 None     TCP

    Очистка

    # Удалить пространство имён из ambient data plane
    kubectl label namespace bookinfo istio.io/dataplane-mode-
    # Удалить пространство имён Bookinfo
    kubectl delete namespace bookinfo

    Дополнительные ресурсы