컨트롤러와 서비스
디플로이먼트 컨트롤러(다른 컨트롤러도)로 만들어진 pod들의 진입점 ip를 갖는다.
apiVersion: v1
kind: Service
metadata:
name: webui-svc
spec:
clusterIP: 10.96.100.100 // 보통 생략한다. 버츄얼 IP, LB Ip
selector:
app:webui
ports:
- protocol: TCP
port: 80 // 클러스터 IP의 포트
targetPort: 80 // Pod의 포트
: 단일 진입점, 가장작고 가장 기본, virtual IP, service API
랜덤 진입(라운드 로빈 X)
apiVersion: v1
kind: Service
metadata:
name: clusterip-service
spec:
type: ClusterIP // 타입지정
clusterIP: 10.100.100.100 //고정 ip
selector:
app: webui // 셀렉터를 통해 labels를 묶어준다.
ports:
- protocol: TCP
port: 80
targetPort: 80
: 클러스트 ip가 생성된 후,모든 워크 노드에 외부에서 접속 가능한 포트 예약, Node까지 확장
Default NodePort 범위 : 30,000-32,767
apiVersion: v1
kind: Service
metadata:
name: nodeport-service
spec:
type: NodePort //
clusterIP: 10.100.100.100
selector:
app: webui
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30200 // 10.100.100.100:30200으로 접속하면 Pod에 랜덤으로 접속
: 퍼블릭 클라우드(aws gcp Azure)에서만 사용가능, 로드밸런서 기능
: DNS기능 지원
<서비스이름>.default.svc.cluster.local
==> google.com 로 연결됨
core DNS
<>.default.pod.cluster.local
apiVersion: v1
kind: Service
...
spec:
type: ClusterIP
clusterIP: None // 헤드리스 서비스 설정
selector:
app: webui
로드밸런스 역할, 쿠버네티스의 네트웍 서비스를 지원
iptables의 룰을 만들어준다.