LoginSignup
0
0

More than 3 years have passed since last update.

Kubernetes Pod間で通信してみる

Posted at

Pod間で通信してみる

Introduction to Kubernetesのチュートリアルを進めながらメモした内容です。

2つのnginxのpodをapplyし、pod間で通信してみましょう。

nginxのIPアドレスを確認する

$ kubectl get pod -o wide
NAME           READY   STATUS    RESTARTS   AGE     IP           NODE       NOMINATED NODE   READINESS GATES
bastion        1/1     Running   0          2d19h   172.17.0.6   minikube   <none>           <none>
my-first-pod   1/1     Running   0          2d19h   172.17.0.5   minikube   <none>           <none>

コンテナに入る

kubectl exec -it [pod名] -- bash

コンテナ内での動作

# curlをインストールして
root@bastion:/# apt update && apt install -y curl

# curlコマンドを叩く
root@bastion:/# curl -i http://172.17.0.5/
HTTP/1.1 200 OK
<以下略>

通信できていることを確認できました。

Service を使って他の Pod にアクセスする

podの状態は常に変わっているので、Serviceを使って、ラベル情報をベースにアクセスさせるようにします。

nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: my-first-service
spec:
  selector: # このセレクタに指定したラベルにマッチする Pod に Service へのアクセスが割り振られます
    component: nginx
  ports:
  - protocol: TCP # このポートの IP プロトコル
    port: 80 # このサービスによって公開されるポート
    targetPort: 80 # サービスの対象となるポッドでアクセスするポートの番号または名前。
# apply
kubectl apply -f nginx-service.yaml

# 確認
kubectl get service

Serviceを介して、podにアクセスする

$ kubectl exec -it bastion -- bash
root@bastion:/# curl -i http://my-first-service/
HTTP/1.1 200 OK

参考

Introduction to Kubernetes

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0