$ 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.