Member-only story
Cert-Managerを使ったLet’s Encryptを伴ったGKE Ingress
Introduction
Google Kubernetes Engine (GKE)では、GKE Ingressと呼ばれる内蔵・管理型のIngressコントローラが利用可能です。Ingressオブジェクトを作成すると、GKE IngressコントローラはGoogle Cloud HTTP(S)ロードバランサーを作成し、Ingressとその関連サービスの情報に従ってコンフィギュアを行います。
この記事では、Ingress for External HTTP(S) Load Balancingのセットアップ、cert-manager certificate provisionerのインストール、Let’s Encrypt証明書のセットアップについて説明します。この記事は、GKE v1.17.17-gke.3000、cert-manager v1.20、Helm v3に基づいて書かれています。
前提条件
- A GKE Kubernetes cluster
- Helm
- Kubectl
- 例えば、example.your-domain.comのように、お客様のドメイン用にDNSをコンフィギュアしたグローバルな静的なIPです。地域のIPアドレスはGKE Ingressでは機能しません。
Ingressを介してエクスポーズされたサービスは、ロードバランサーからのヘルスチェックに応答しないといけないことに注意してください。そのドキュメントによると、アプリケーションは、/パスのGETリクエストに対してHTTP 200ステータスのレスポンスを提供するか、HTTPレディネスプローブをコンフィギュアして、レディネスプローブで指定されたパスのGETリクエストに対してHTTP 200ステータスのレスポンスを提供する必要があります。
Create a deployment
ディプロイメントマニフェストのサンプルを紹介します。
apiVersion: apps/v1kind: Deploymentmetadata:name: sample-deploymentlabels:app: sampleAppspec:replicas: 1selector:matchLabels:app: sampleApptemplate: