高可用性のためのprodインストールのアップグレード

高可用性環境のためのprodインストールをアップグレードするためのガイド

Verrazzano環境をアップグレードして高可用性を実現するために必要な厳密なステップは、各環境の構成によって異なります。

  1. 実現する高可用性のレベルをサポートするためにKubernetes構成を更新する必要があるかどうかを評価します。「高可用性の構成」を参照してください。

  2. Verrazzanoをv1.5.0以降にアップグレードします。「Verrazzanoのアップグレード」を参照してください。

  3. examples/haディレクトリには、可用性の高いVerrazzanoインストールの例が含まれています。次の例では、デフォルトの prodインストールを可用性の高いVerrazzano環境にアップグレードする方法の例として、ha.yamlファイルを使用します。

    a.パッチ・ファイルを作成します:

$ cat > patch.yaml <<EOF
spec:
  components:
    authProxy:
      overrides:
      - values:
          replicas: 2
    certManager:
      overrides:
      - values:
          replicaCount: 2
          cainjector:
            replicaCount: 2
          webhook:
            replicaCount: 2
    console:
      overrides:
      - values:
          replicas: 2
    ingress:
      overrides:
      - values:
          controller:
            autoscaling:
              enabled: true
              minReplicas: 2
          defaultBackend:
            replicaCount: 2
    istio:
      overrides:
      - values:
          apiVersion: install.istio.io/v1alpha1
          kind: IstioOperator
          spec:
            components:
              pilot:
                k8s:
                  replicaCount: 2
              ingressGateways:
                - enabled: true
                  k8s:
                    affinity:
                      podAntiAffinity:
                        preferredDuringSchedulingIgnoredDuringExecution:
                        - podAffinityTerm:
                            labelSelector:
                              matchExpressions:
                              - key: app
                                operator: In
                                values:
                                - istio-ingressgateway
                            topologyKey: kubernetes.io/hostname
                          weight: 100
                    replicaCount: 2
                    service:
                      type: LoadBalancer
                  name: istio-ingressgateway
              egressGateways:
                - enabled: true
                  k8s:
                    affinity:
                      podAntiAffinity:
                        preferredDuringSchedulingIgnoredDuringExecution:
                        - podAffinityTerm:
                            labelSelector:
                              matchExpressions:
                              - key: app
                                operator: In
                                values:
                                - istio-egressgateway
                            topologyKey: kubernetes.io/hostname
                          weight: 100
                    replicaCount: 2
                  name: istio-egressgateway
    keycloak:
      overrides:
      - values:
          replicas: 2
      mysql:
        overrides:
        - values:
            serverInstances: 3
            routerInstances: 2
    opensearchDashboards:
      replicas: 2
    kiali:
      overrides:
      - values:
          deployment:
            replicas: 2
    prometheusOperator:
      overrides:
      - values:
          prometheus:
            prometheusSpec:
              replicas: 2
    opensearch:
      nodes:
      - name: es-ingest
        replicas: 2
EOF

b.パッチを適用します:

$ kubectl patch verrazzano verrazzano --patch-file=patch.yaml --type=merge

c.パッチがインストールされるまで待ちます:

$ kubectl wait --timeout=30m --for=jsonpath='{.status.state}'=Ready verrazzano/verrazzano