[A-00238] Kubernetes 1000本ノック (3)

前回記事はこちら

Nodeportを使って外部からpodに通信しようと思います。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx-dep
  template:
    metadata:
      labels:
        app: nginx-dep
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
apiVersion: v1
kind: Service
metadata:
  name: node-port
spec:
  type: NodePort
  ports:
  - name: node-port
    protocol: TCP
    port: 8080
    targetPort: 80
    nodePort: 30001
  selector:
    app: nginx-dep

上記をデプロイして各podのnginxのhtmlを書き換えます。書き換え方法は前回記事を見てください。

書き換えが済んだらブラウザからnodeportにアクセスします。describeコマンドでIPを表示し、30001ポートにアクセスすることで2つのpodにロードバランシングされます。

kubectl apply -f deployment.yml,nodeport.yml
user@usernoMacBook-Pro external_ip_test % kubectl describe service/node-port
Name:                     node-port
Namespace:                default
Labels:                   <none>
Annotations:              <none>
Selector:                 app=nginx-dep
Type:                     NodePort
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       10.97.209.247
IPs:                      10.97.209.247 // localhostでアクセスで問題なし
Port:                     node-port  8080/TCP
TargetPort:               80/TCP
NodePort:                 node-port  30001/TCP
Endpoints:                10.1.0.188:80,10.1.0.187:80
Session Affinity:         None
External Traffic Policy:  Cluster
Internal Traffic Policy:  Cluster
Events:                   <none>

Appendix

参考文献はこちら

https://qiita.com/dingtianhongjie/items/8f3c320c4eb5cf25d9de

https://qiita.com/dingtianhongjie/items/d3dda4583ae013c9d6eb

https://zenn.dev/suiudou/articles/7dad08c5b64283

https://cstoku.dev/posts/2018/k8sdojo-05

https://qiita.com/dingtianhongjie/items/cead36bedffbd57ce100

https://qiita.com/Esfahan/items/f9c246e3c60fe8490af3

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*