File tree Expand file tree Collapse file tree 4 files changed +108
-0
lines changed Expand file tree Collapse file tree 4 files changed +108
-0
lines changed Original file line number Diff line number Diff line change
1
+ AKS で独自ドメインを使った HTTPS の Web アプリケーションをデプロイするための手順です。ここでは、cert-manager を使用して Let's Encrypt から証明書を取得し、Ingress リソースを通じて HTTPS を有効にします。
2
+
3
+ <!-- @gemini AKS で独自ドメインを使ったHTTPS対応なWebサーバー公開方法を一番シンプルにわかる方法で教えて -->
4
+
5
+ ``` shell
6
+ # web applicationのデプロイメントを作成
7
+ kubectl apply -f k8s/cert-manager/nginx-deployment.yaml
8
+
9
+ # Ingress Nginx Controllerのデプロイメントを ingress-nginx 名前空間に作成
10
+ # https://kubernetes.github.io/ingress-nginx/deploy/#azure
11
+ # https://learn.microsoft.com/ja-jp/troubleshoot/azure/azure-kubernetes/load-bal-ingress-c/create-unmanaged-ingress-controller?tabs=azure-cli#create-an-ingress-controller
12
+ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.13.0/deploy/static/provider/cloud/deploy.yaml
13
+
14
+ # External IPアドレスの確認 (ingress-nginx-controller の LoadBalancer)
15
+ kubectl get svc -n ingress-nginx
16
+
17
+ # cert-manager を cert-manager 名前空間にデプロイ
18
+ # https://cert-manager.io/docs/installation/kubectl/
19
+ # Install all cert-manager components:
20
+ kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.18.2/cert-manager.yaml
21
+
22
+ # ClusterIssuerの作成
23
+ # https://cert-manager.io/docs/configuration/acme/
24
+ kubectl apply -f k8s/cert-manager/letsencrypt-clusterissuer.yaml
25
+
26
+ # Ingressリソースの作成
27
+ # https://cert-manager.io/docs/usage/ingress/
28
+ kubectl apply -f k8s/cert-manager/nginx-ingress.yaml
29
+
30
+ # Ingressリソースの状態を確認
31
+ kubectl get ingress nginx-ingress -w
32
+
33
+ # 証明書の状態を確認
34
+ kubectl get certificaterequest -A
35
+ kubectl get certificate -A
36
+ kubectl describe certificate your-domain-com-tls
37
+ ```
Original file line number Diff line number Diff line change
1
+ apiVersion : cert-manager.io/v1
2
+ kind : ClusterIssuer
3
+ metadata :
4
+ name : letsencrypt-prod
5
+ spec :
6
+ acme :
7
+ email :
[email protected] # あなたのメールアドレス
8
+ server : https://acme-v02.api.letsencrypt.org/directory # 本番環境
9
+ privateKeySecretRef :
10
+ name : letsencrypt-prod-private-key
11
+ solvers :
12
+ - http01 :
13
+ ingress :
14
+ class : nginx
Original file line number Diff line number Diff line change
1
+ apiVersion : apps/v1
2
+ kind : Deployment
3
+ metadata :
4
+ name : nginx-deployment
5
+ spec :
6
+ replicas : 2 # 任意のレプリカ数
7
+ selector :
8
+ matchLabels :
9
+ app : nginx
10
+ template :
11
+ metadata :
12
+ labels :
13
+ app : nginx
14
+ spec :
15
+ containers :
16
+ - name : nginx
17
+ image : nginx:latest # 最新のNginxイメージ
18
+ ports :
19
+ - containerPort : 80
20
+ ---
21
+ apiVersion : v1
22
+ kind : Service
23
+ metadata :
24
+ name : nginx-service
25
+ spec :
26
+ selector :
27
+ app : nginx
28
+ ports :
29
+ - protocol : TCP
30
+ port : 80 # Serviceのポート
31
+ targetPort : 80 # Podのポート
32
+ type : ClusterIP # Ingress Controllerがサービスにアクセスするため、ClusterIPで十分
33
+
Original file line number Diff line number Diff line change
1
+ apiVersion : networking.k8s.io/v1
2
+ kind : Ingress
3
+ metadata :
4
+ name : nginx-ingress
5
+ annotations :
6
+ kubernetes.io/ingress.class : nginx
7
+ cert-manager.io/cluster-issuer : letsencrypt-prod
8
+ spec :
9
+ rules :
10
+ - host : www.ks6088ts.com
11
+ http :
12
+ paths :
13
+ - path : /
14
+ pathType : Prefix
15
+ backend :
16
+ service :
17
+ name : nginx-service # ステップ2で作成したService名
18
+ port :
19
+ number : 80 # Serviceのポート
20
+ tls : # HTTPSを有効にするための設定
21
+ - hosts :
22
+ - www.ks6088ts.com # あなたの独自ドメイン
23
+ secretName : your-domain-com-tls # Cert-Managerが証明書を保存するKubernetes Secretの名前 (任意)
24
+
You can’t perform that action at this time.
0 commit comments