デプロイの確認
まだアプリのコンテナレジストリどうするか問題があるのでk8sのクイックスタートをなぞって動作確認を行う。
コマンド
kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0
kubectl expose deployment hello-server --type LoadBalancer --port 80 --target-port 8080
繋がらない
上記で作成したhello-server
serviceを確認すると外部IPがpending
のまま変わらない。
多分digitaloceanでDropletに割り当てられてるIPは1つだから外部IPの取得ができなくて困ってるんだろう。
他のserviceを確認するとtraefik
というサービスが唯一の外部IPをポート80で使用している。
のでポートを変えてみる。
kubectl expose deployment hello-server --type LoadBalancer --port 8080 --target-port 8080
繋がった。
traefikて何なん
Ingressだって。
じゃあIngress経由で公開してみよう。
hello-server
のserviceをClusterIPに変更してポートも元に戻す
kubectl expose deployment hello-server --type ClusterIP --port 80 --target-port 8080
ingress.ymlを作成
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress
annotations:
ingress.kubernetes.io/ssl-redirect: "true"
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: hello-server
port:
number: 80
ingressを配置
kubectl apply -f ingress.yml