概要
過去 に ingress-nginx を helm を使ってデプロイする方法を紹介しました
hostNetwork についても少し触れていたのですが改めて動作確認してみました
またこのやり方はテスト環境などクラウドロードバランサを用意できない場合に使いましょう
プロダクションなどでは採用しないようが良いです
環境
- k8s 1.20.1
- ingress-nginx chart 3.26.0
ingress-nginx controller のデプロイ
オプションで hostNetwork をオンにします
またその際にデプロイするモードを Damonset にする必要があります
helm install hostnetwork-test-ingress ingress-nginx/ingress-nginx --set controller.hostNetwork=true --set controller.service.type="" --set controller.kind=DaemonSet
これで各ノードに ingress-nginx controller がデプロイされ各ノードで 80/443 が LISTEN されます
動作確認
適当に Web アプリをデプロイし Ingress を作成して Ingress 経由でアプリにアクセスできるか確認してみましょう
helm install request-dumper request-dumper/request-dumper
kubectl get svc request-dumper
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
request-dumper NodePort 10.104.206.212 <none> 8080:31036/TCP 16m
8080 ポートに Ingress で接続するように Ingress を作成します
vim ingress.yml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: hostnetwork-test-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: foo.bar.com
http:
paths:
- path: /
backend:
serviceName: request-dumper
servicePort: 8080
kubectl apply -f ingress.yml
curl -H "Host: [foo.bar.com](http://foo.bar.com/)" 192.168.100.10
こんな感じでノードの 80 番でアクセスできるのが確認できると思います
最後に
あくまでもテストで使うようにしましょう
0 件のコメント:
コメントを投稿