Kubernetes service

jaeyeon ha·2026년 3월 7일

[교육] Kubernetes

목록 보기
23/34

서비스

Pod는 컨트롤러가 관리하므로 한 군데 고정하여 생성되지 않고, 클러스터 안을 이동하면서 생성되어 동작

  • 노드가 변경되어 클러스터 안의 파드의 IP 주소가 다시 생성될 때마다 매번 변경
  • 기존의 파드의 IP 주소로 접근이 불가능하여 서비스를 통해 동일한 서비스를 제공하는 파드(동일한 label을 사용하는 파드) 그룹의 단일 진입점(가상 IP 주소, 포트) 구성이 필요

서비스를 구성하여 파드가 클러스터 내 어떤 노드에 있든 상관없이 서비스의 고정 IP 주소를 이용하여 접근이 가능하므로 클러스터 내부 또는 외부에서 클러스터 안의 파드로 접근이 가능하도록 함

[root@master ~/kube/08]# kubectl create deployment webserver --image=nginx --port=80 --replicas=3
deployment.apps/webserver created
[root@master ~/kube/08]# kubectl get pod -o wide
NAME                         READY   STATUS    RESTARTS   AGE   IP               NODE    NOMINATED NODE   READINESS GATES
webserver-5d9fb79495-7qxw6   1/1     Running   0          15s   10.233.75.53     node2   <none>           <none>
webserver-5d9fb79495-f59rv   1/1     Running   0          15s   10.233.102.164   node1   <none>           <none>
webserver-5d9fb79495-qbk7d   1/1     Running   0          15s   10.233.71.31     node3   <none>           <none>
[root@master ~/kube/08]# curl <http://10.233.71.31>
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
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>
[root@master ~/kube/08]# kubectl delete pod --all
pod "webserver-5d9fb79495-7qxw6" deleted
pod "webserver-5d9fb79495-f59rv" deleted
pod "webserver-5d9fb79495-qbk7d" deleted

[root@master ~/kube/08]# kubectl delete pod --all
pod "webserver-5d9fb79495-9htfw" deleted
pod "webserver-5d9fb79495-n2626" deleted
pod "webserver-5d9fb79495-rj5tr" deleted
[root@master ~/kube/08]# curl <http://10.233.71.31>
^C
[root@master ~/kube/08]# kubectl get pod -o wide
NAME                         READY   STATUS    RESTARTS   AGE   IP               NODE    NOMINATED NODE   READINESS GATES
webserver-5d9fb79495-csk5b   1/1     Running   0          19s   10.233.75.55     node2   <none>           <none>
webserver-5d9fb79495-pmcbc   1/1     Running   0          19s   10.233.71.33     node3   <none>           <none>
webserver-5d9fb79495-wzqd7   1/1     Running   0          19s   10.233.102.166   node1   <none>           <none>

▶ pod가 삭제되고 새로 구동되고 나면 pod의 IP가 변경되어 기존의 pod IP로는 접근할 수 없음

[root@master ~/kube/08]# kubectl api-resources | grep service
serviceaccounts                   sa           v1                                     true         ServiceAccount
services                          svc          v1                                     true         Service
apiservices                                    apiregistration.k8s.io/v1              false        APIService

0개의 댓글