Kubernetes : Deploy Pods2025/01/23 |
|
This is the basic operation to create pods and others on Kubernetes Cluster. In this example, a Kubernetes cluster is configured using four nodes as follows.
+----------------------+ +----------------------+
| [ ctrl.srv.world ] | | [ dlp.srv.world ] |
| Manager Node | | Control Plane |
+-----------+----------+ +-----------+----------+
eth0|10.0.0.25 eth0|10.0.0.30
| |
------------+--------------------------+-----------
| |
eth0|10.0.0.51 eth0|10.0.0.52
+-----------+----------+ +-----------+----------+
| [ node01.srv.world ] | | [ node02.srv.world ] |
| Worker Node#1 | | Worker Node#2 |
+----------------------+ +----------------------+
|
|
Work on Manager Node or Client Hosts you did setup cluster admin file. |
|
| [1] | Create or Delete Pods. |
|
# run [test-nginx] pods [centos@ctrl ~]$ kubectl create deployment test-nginx --image=nginx deployment.apps/test-nginx created kubectl get pods AME READY STATUS RESTARTS AGE test-nginx-b6dfcf6bd-ql4zb 1/1 Running 0 12s # show environment variable for [test-nginx] pod [centos@ctrl ~]$ kubectl exec test-nginx-b6dfcf6bd-ql4zb -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin TERM=xterm HOSTNAME=test-nginx-b6dfcf6bd-ql4zb KUBERNETES_SERVICE_PORT_HTTPS=443 KUBERNETES_PORT=tcp://10.96.0.1:443 KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443 KUBERNETES_PORT_443_TCP_PROTO=tcp KUBERNETES_PORT_443_TCP_PORT=443 KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1 KUBERNETES_SERVICE_HOST=10.96.0.1 KUBERNETES_SERVICE_PORT=443 NGINX_VERSION=1.29.0 NJS_VERSION=0.9.0 NJS_RELEASE=1~bookworm PKG_RELEASE=1~bookworm DYNPKG_RELEASE=1~bookworm HOME=/root # shell access to [test-nginx] pod [centos@ctrl ~]$ kubectl exec -it test-nginx-b6dfcf6bd-ql4zb -- bash root@test-nginx-b6dfcf6bd-ql4zb:/# exit exit # show logs of [test-nginx] pod [centos@ctrl ~]$ kubectl logs test-nginx-b6dfcf6bd-ql4zb /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh /docker-entrypoint.sh: Configuration complete; ready for start up 2025/07/03 01:49:25 [notice] 1#1: using the "epoll" event method 2025/07/03 01:49:25 [notice] 1#1: nginx/1.29.0 2025/07/03 01:49:25 [notice] 1#1: built by gcc 12.2.0 (Debian 12.2.0-14+deb12u1) 2025/07/03 01:49:25 [notice] 1#1: OS: Linux 6.12.0-55.18.1.el10_0.x86_64 2025/07/03 01:49:25 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576 2025/07/03 01:49:25 [notice] 1#1: start worker processes ..... ..... # scale out pods [centos@ctrl ~]$ kubectl scale deployment test-nginx --replicas=3 deployment.extensions/test-nginx scaled kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES test-nginx-b6dfcf6bd-ql4zb 1/1 Running 0 2m2s 192.168.241.129 node02.srv.world <none> <none> test-nginx-b6dfcf6bd-r8wx7 1/1 Running 0 11s 192.168.241.130 node02.srv.world <none> <none> test-nginx-b6dfcf6bd-ww28c 1/1 Running 0 11s 192.168.40.193 node01.srv.world <none> <none> # set service [centos@ctrl ~]$ kubectl expose deployment test-nginx --type="NodePort" --port 80 service "test-nginx" exposed kubectl get services test-nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE test-nginx NodePort 10.108.217.98 <none> 80:30431/TCP 4s # set port-forwarding and verify access [centos@ctrl ~]$ kubectl port-forward service/test-nginx --address 127.0.0.1 8082:80 & [1] 2293 [centos@ctrl ~]$ curl localhost:8082 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> ..... ..... <p><em>Thank you for using nginx.</em></p> </body> </html> # delete service [centos@ctrl ~]$ kubectl delete services test-nginx service "test-nginx" deleted # delete pods [centos@ctrl ~]$ kubectl delete deployment test-nginx deployment.extensions "test-nginx" deleted |
| Sponsored Link |
|
|