Citrix ADC CPXをGoogle Cloud Platform にIngressデバイスとして展開する
このトピックでは、Citrix ADC CPXをGoogle Kubernetesエンジン(GKE)のイングレスデバイスとして展開する方法について説明します。
前提条件
「」の手順を実行する前に、次のタスクを完了しておく必要があります。
-
Kubernetes クラスタが稼働していることを確認します。
-
GKE でクラスタを実行している場合は、cluster-admin ロールバインディングが設定されていることを確認します。
次のコマンドを使用して cluster-admin ロールバインディングを設定できます。
kubectl create clusterrolebinding citrix-cluster-admin --clusterrole=cluster-admin --user=<email-id of your google account>
Googleアカウントの詳細を取得するには、次のコマンドを使用します。
gcloud info | grep Account
Citrix ADC CPXをGoogle Cloud Platform にイングレスデバイスとして展開する
-
次のコマンドを使用して、必要なアプリケーションを Kubernetes クラスタにデプロイし、クラスタ内のサービスとして公開します。
kubectl create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/gcp/manifest/apache.yaml
注:
この例では、
apache.yaml
が使用されています。アプリケーションには特定の YAML ファイルを使用する必要があります。 -
次のコマンドを使用して、Citrix ADC CPX をクラスタ内のイングレスデバイスとして展開します。
kubectl create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/gcp/manifest/standalone_cpx.yaml
-
次のコマンドを使用して Ingress リソースを作成します。
kubectl create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/gcp/manifest/cpx_ingress.yaml
-
次のコマンドを使用して、Citrix ADC CPX にアクセスするための LoadBalancer タイプのサービスを作成します。
kubectl create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/gcp/manifest/cpx_service.yaml
注:
このコマンドは、トラフィックを受信するための外部 IP を持つロードバランサーを作成します。
-
サービスを確認し、ロードバランサーが外部 IP を作成したかどうかを確認します。外部 IP が作成されない場合は、しばらくお待ちください。
kubectl get svc |NAME | TYPE | CLUSTER-IP | EXTERNAL-IP | PORT(S) | AGE | | --- | ---| ----| ----| ----| ----| |apache | ClusterIP |10.7.248.216 |none | 80/TCP | 2m | |cpx-ingress |LoadBalancer | 10.7.241.6 | pending | 80:32258/TCP,443:32084/TCP | 2m| |kubernetes |ClusterIP |10.7.240.1 |none | 443/TCP | 22h|
-
ロードバランサーの外部 IP が次のように使用可能になると、ロードバランサーの外部 IP を使用してリソースにアクセスできます。
kubectl get svc |Name | Type | Cluster-IP | External IP| Port(s) | Age | |-----| -----| -------| -----| -----| ----| |apache| ClusterIP|10.7.248.216|none|80/TCP |3m| |cpx-ingress|LoadBalancer|10.7.241.6|EXTERNAL-IP CREATED|80:32258/TCP,443:32084/TCP|3m| |kubernetes| ClusterIP| 10.7.240.1|none|443/TCP|22h|`
注: クラウドロードバランサーのヘルスチェックは、 Citrix ADC CPX サービスの YAML ファイルで構成された readinessProbe から取得されます。ヘルスチェックが失敗した場合は、Citrix ADC CPX 用に構成された ReadinessProbe を確認する必要があります。 詳細については、 ReadinessProbeと外部ロードバランサーを参照してください。
-
以下のコマンドを使用してアプリケーションにアクセスします。
curl http://<External-ip-of-loadbalancer>/ -H 'Host: citrix-ingress.com'
クイック展開
デプロイを容易にするために、前のトピックで説明した手順を組み合わせた 1 つのオールインワンマニフェストをデプロイするだけで済みます。
-
オールインワンの.yamlを使用して、組み込みの Citrix ingress controller を持つ Citrix ADC CPX イングレスを Kubernetes クラスターに展開します。
kubectl create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/gcp/manifest/all-in-one.yaml
-
以下のコマンドを使用してアプリケーションにアクセスします。
curl http://<External-ip-of-loadbalancer>/ -H 'Host: citrix-ingress.com'
注:
デプロイメントを削除するには、
kubectl delete -f all-in-one.yaml
コマンドを使用します。