Kubernetes : Pod デプロイ2023/07/28 |
Pod 作成等の基本操作です。 当例では以下のように 3 台のノードを使用してクラスターを構成しています。 -----------+---------------------------+--------------------------+------------ | | | eth0|10.0.0.25 eth0|10.0.0.71 eth0|10.0.0.72 +----------+-----------+ +-----------+-----------+ +-----------+-----------+ | [ ctrl.srv.world ] | | [snode01.srv.world] | | [snode02.srv.world] | | Control Plane | | Worker Node | | Worker Node | +----------------------+ +-----------------------+ +-----------------------+ |
[1] | Pod の作成/削除等の操作です。 |
# [test-nginx] pod を起動する root@ctrl:~# kubectl create deployment test-nginx --image=nginx deployment.apps/test-nginx created kubectl get pods NAME READY STATUS RESTARTS AGE test-nginx-6b4d69f6f8-t7zgw 1/1 Running 0 35s # [test-nginx] pod の環境変数を表示する root@ctrl:~# kubectl exec test-nginx-6b4d69f6f8-t7zgw -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=test-nginx-6b4d69f6f8-t7zgw NGINX_VERSION=1.25.1 NJS_VERSION=0.7.12 PKG_RELEASE=1~bookworm 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 KUBERNETES_SERVICE_PORT_HTTPS=443 KUBERNETES_PORT=tcp://10.96.0.1:443 KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443 HOME=/root # [test-nginx] pod にシェルアクセス root@ctrl:~# kubectl exec -it test-nginx-6b4d69f6f8-t7zgw -- bash
hostname test-nginx-6b4d69f6f8-t7zgw
root@test-nginx-6b4d69f6f8-t7zgw:/#
exit
# [test-nginx] pod のログを表示する root@ctrl:~# kubectl logs test-nginx-6b4d69f6f8-t7zgw /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 2023/07/28 05:02:26 [notice] 1#1: using the "epoll" event method 2023/07/28 05:02:26 [notice] 1#1: nginx/1.25.1 2023/07/28 05:02:26 [notice] 1#1: built by gcc 12.2.0 (Debian 12.2.0-14) 2023/07/28 05:02:26 [notice] 1#1: OS: Linux 6.1.0-9-amd64 ..... ..... # pod をスケールアウトする root@ctrl:~# kubectl scale deployment test-nginx --replicas=3 deployment.extensions/test-nginx scaled root@ctrl:~# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES test-nginx-6b4d69f6f8-l9lr2 1/1 Running 0 34s 192.168.211.130 snode02.srv.world <none> <none> test-nginx-6b4d69f6f8-p98xj 1/1 Running 0 34s 192.168.186.65 snode01.srv.world <none> <none> test-nginx-6b4d69f6f8-t7zgw 1/1 Running 0 3m29s 192.168.211.129 snode02.srv.world <none> <none> # サービスを設定する root@ctrl:~# kubectl expose deployment test-nginx --type="NodePort" --port 80 service "test-nginx" exposed root@ctrl:~# kubectl get services test-nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE test-nginx NodePort 10.105.13.79 <none> 80:30727/TCP 5s # アクセス確認 root@ctrl:~# curl 10.105.13.79 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> ..... ..... <p><em>Thank you for using nginx.</em></p> </body> </html> # サービスを削除する root@ctrl:~# kubectl delete services test-nginx service "test-nginx" deleted # Pod を削除する root@ctrl:~# kubectl delete deployment test-nginx deployment.extensions "test-nginx" deleted |
Sponsored Link |