続k3s

デプロイの確認

まだアプリのコンテナレジストリどうするか問題があるので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-serverserviceを確認すると外部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

繋がった