[DOCKER] [K8s] J'ai essayé la communication entre les pods!

introduction

Actuellement, divers services deviennent des micro-services. À cette époque, l'une des parties importantes est la communication entre les services. De plus, lors de l'introduction de micro-services, le développement à l'aide de kubernetes est souvent adopté.

Par conséquent, cette fois, en tant que méthode de communication entre les services, examinons la méthode de communication entre les pods, qui est la ressource minimale des kuberntes.

Concernant le mode de communication entre les services, en plus de la communication entre les pods, Il existe des méthodes de communication telles que gRPC.

Que faire cette fois

Cette fois, très simple, communiquons le pod serveur httpd créé par le déploiement de k8s avec le pod nginx.

httpd

httpd_deployment.yml


apiVersion: v1
kind: Service
metadata:
  name: httpd-svc
spec:
  selector:
    app: httpd
  ports:
  - port: 8090
    targetPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: httpd
spec:
  replicas: 1
  selector:
    matchLabels:
      app: httpd
  template:
    metadata:
      labels:
        app: httpd
    spec:
      containers:
      - name: httpd
        image: httpd:2-alpine
        ports:
        - containerPort: 80

nginx

nginx_deployment.yml



apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
spec:
  selector:
    app: nginx
  ports:
  - port: 8080
    targetPort: 80

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.18-alpine
        ports:
        - containerPort: 80

Pour le moment, essayez de communiquer

$ kubectl apply -f httd_deployment.yml -f nginx_deployment.yml 

――Vérifiez si vous vous êtes bien levé

$ kubectl get po 

NAME                    READY   STATUS    RESTARTS   AGE
httpd-7f8bd9884-jptwt   1/1     Running   0          4m26s
nginx-d69ddfd76-r4lhq   1/1     Running   0          4m26s

OK si les deux statuts sont en cours d'exécution

httpd→nginx

$ kubectl exec -it httpd-7f8bd9884-jptwt sh
/ # 
/ # curl http://nginx-svc:8080

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
 

nginx→httpd

$ kubectl exec -it nginx-d69ddfd76-r4lhq sh
/ # curl http://httpd-svc:8090
<html><body><h1>It works!</h1></body></html>

J'ai pu confirmer que j'étais en mesure d'y accéder.

Recommended Posts

[K8s] J'ai essayé la communication entre les pods!
J'ai essayé la communication UDP avec Java
J'ai essayé Spring.
J'ai essayé de mettre Tomcat
J'ai essayé youtubeDataApi.
J'ai essayé de refactoriser ①
J'ai essayé FizzBuzz.
J'ai essayé JHipster 5.1
[J'ai essayé] Tutoriel de printemps
J'ai essayé d'utiliser Gson
J'ai essayé QUARKUS immédiatement
J'ai essayé d'utiliser TestNG
J'ai essayé Spring Batch
J'ai essayé d'utiliser Galasa
J'ai essayé node-jt400 (Programmes)
J'ai essayé node-jt400 (exécuter)
À propos de la communication entre les conteneurs
Différence entre i ++ et ++ i
J'ai essayé node-jt400 (Transactions)
J'ai essayé d'implémenter la fonction similaire par communication asynchrone
J'ai essayé node-jt400 (Construction de l'environnement)
J'ai essayé DI avec Ruby
J'ai essayé node-jt400 (écriture IFS)
J'ai essayé d'utiliser azure cloud-init
J'ai essayé la machine Spring State
J'ai essayé Drools (Java, InputStream)
J'ai essayé Rails débutant [Chapitre 1]
J'ai essayé d'utiliser Apache Wicket
J'ai essayé node-jt400 (requête SQL)
J'ai essayé d'utiliser Java REPL
J'ai essayé l'analyse du code source
J'ai essayé le problème FizzBuzz
J'ai essayé node-jt400 (flux SQL)
J'ai essayé node-jt400 (lecture IFS)
J'ai essayé Rails débutant [Chapitre 2]
J'ai essayé UPSERT avec PostgreSQL.
J'ai essayé BIND avec Docker
J'ai essayé de vérifier yum-cron
J'ai essayé la métaprogrammation avec Java