====== Rede no Kubernetes ====== $ kubectl get pods -n kube-system -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES calico-kube-controllers-56fcbf9d6b-8bgc4 1/1 Running 0 22h 172.16.244.65 kube-ctrl-pl-01.juntotelecom.com.br calico-node-dp8bl 1/1 Running 0 22h 177.75.176.40 kube-ctrl-pl-01.juntotelecom.com.br calico-node-mrljz 1/1 Running 0 19h 177.75.176.41 kube-worker-01.juntotelecom.com.br calico-node-rq79d 1/1 Running 0 19h 177.75.176.42 kube-worker-02.juntotelecom.com.br coredns-64897985d-6j9g7 1/1 Running 0 3d16h 192.168.244.67 kube-ctrl-pl-01.juntotelecom.com.br coredns-64897985d-mbjdq 1/1 Running 0 3d16h 192.168.244.66 kube-ctrl-pl-01.juntotelecom.com.br etcd-kube-ctrl-pl-01.juntotelecom.com.br 1/1 Running 0 3d16h 177.75.176.40 kube-ctrl-pl-01.juntotelecom.com.br kube-apiserver-kube-ctrl-pl-01.juntotelecom.com.br 1/1 Running 0 3d16h 177.75.176.40 kube-ctrl-pl-01.juntotelecom.com.br kube-controller-manager-kube-ctrl-pl-01.juntotelecom.com.br 1/1 Running 0 3d16h 177.75.176.40 kube-ctrl-pl-01.juntotelecom.com.br kube-proxy-6m6gg 1/1 Running 0 19h 177.75.176.41 kube-worker-01.juntotelecom.com.br kube-proxy-6mdph 1/1 Running 0 19h 177.75.176.42 kube-worker-02.juntotelecom.com.br kube-proxy-h8s2j 1/1 Running 0 3d16h 177.75.176.40 kube-ctrl-pl-01.juntotelecom.com.br kube-scheduler-kube-ctrl-pl-01.juntotelecom.com.br 1/1 Running 0 3d16h 177.75.176.40 kube-ctrl-pl-01.juntotelecom.com.br ===== Comunicação entre containers ===== $ cat container_to_container.yaml --- apiVersion: v1 kind: Pod metadata: labels: app: ops name: pod1 spec: containers: - image: nginx imagePullPolicy: IfNotPresent name: nginx ports: - containerPort: 80 - image: registry:2 name: registry ports: - containerPort: 5000 $ kubectl apply -f container_to_container.yaml pod/pod1 created $ kubectl get pods NAME READY STATUS RESTARTS AGE pod1 2/2 Running 0 54s $ kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod1 2/2 Running 0 77s 172.16.213.132 kube-worker-02.juntotelecom.com.br $ curl 172.16.213.132:80 Welcome to nginx!

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

$ curl 172.16.213.132:5000/v2/_catalog {"repositories":[]} $ export POD1=$(kubectl get po pod1 -o wide | awk -F" " '{print $6}' | tail -1) $ curl $POD1 Welcome to nginx!

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

==== Pod-to-Pod ==== $ cat pod_to_pod.yaml --- apiVersion: v1 kind: Pod metadata: labels: app: dev ver: "0.5" name: pod2 spec: containers: - image: nginx imagePullPolicy: IfNotPresent name: nginx ports: - containerPort: 80 --- apiVersion: v1 kind: Pod metadata: labels: app: dev ver: "0.5" name: pod3 spec: containers: - image: nginx name: nginx ports: - containerPort: 80 $ kubectl apply -f pod_to_pod.yaml pod/pod2 created pod/pod3 created $ kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod1 2/2 Running 0 3h3m 172.16.213.132 kube-worker-02.juntotelecom.com.br pod2 1/1 Running 0 58s 172.16.101.68 kube-worker-01.juntotelecom.com.br pod3 1/1 Running 0 58s 172.16.101.69 kube-worker-01.juntotelecom.com.br $ kubectl get pods -l app=dev -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod2 1/1 Running 0 3m4s 172.16.101.68 kube-worker-01.juntotelecom.com.br pod3 1/1 Running 0 3m4s 172.16.101.69 kube-worker-01.juntotelecom.com.br $ kubectl get pods -l ver=0.5 -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod2 1/1 Running 0 4m51s 172.16.101.68 kube-worker-01.juntotelecom.com.br pod3 1/1 Running 0 4m51s 172.16.101.69 kube-worker-01.juntotelecom.com.br $ kubectl get pods -l app=ops -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod1 2/2 Running 0 3h5m 172.16.213.132 kube-worker-02.juntotelecom.com.br $ kubectl exec -it pod3 -- cat /etc/resolv.conf search default.svc.cluster.local svc.cluster.local cluster.local juntotelecom.com.br nameserver 10.96.0.10 options ndots:5 $ kubectl exec -it pod3 -- cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 11 (bullseye)" NAME="Debian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" $ kubectl exec -ti pod3 -- curl $POD1:80 Welcome to nginx!

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

=== Pod-to-Service === $ cat pod_to_service.yaml --- apiVersion: v1 kind: Pod metadata: labels: app: dev ver: "0.5" name: pod2 spec: containers: - image: nginx imagePullPolicy: IfNotPresent name: nginx ports: - containerPort: 80 --- apiVersion: v1 kind: Pod metadata: labels: app: dev ver: "0.5" name: pod3 spec: containers: - image: nginx imagePullPolicy: IfNotPresent name: nginx ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: labels: app: dev name: nginx-service spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: app: dev type: LoadBalancer $ kubectl apply -f pod_to_service.yaml --force pod/pod2 unchanged pod/pod3 configured service/nginx-service unchanged $ kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod1 2/2 Running 0 3h27m 172.16.213.132 kube-worker-02.juntotelecom.com.br pod2 1/1 Running 0 24m 172.16.101.68 kube-worker-01.juntotelecom.com.br pod3 1/1 Running 0 75s 172.16.213.133 kube-worker-02.juntotelecom.com.br $ kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 443/TCP 3d20h nginx-service LoadBalancer 10.110.75.105 80:31852/TCP 2m5s $ kubectl describe service nginx-service Name: nginx-service Namespace: default Labels: app=dev Annotations: Selector: app=dev Type: LoadBalancer IP Family Policy: SingleStack IP Families: IPv4 IP: 10.110.75.105 IPs: 10.110.75.105 Port: 80/TCP TargetPort: 80/TCP NodePort: 31852/TCP Endpoints: 172.16.101.68:80,172.16.213.133:80 Session Affinity: None External Traffic Policy: Cluster Events: $ kubectl exec -ti pod3 -- curl 10.110.75.105 Welcome to nginx!

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.