POD 배포하기
test-pod.yml
apiVersion: v1 kind: ReplicationController metadata: name: kubia spec: replicas: 3 selector: app: kubia template: metadata: labels: app: kubia spec: containers: - name: kubia image: reg.cloud.com/kubia ports: - containerPort: 8080
$ k create -f test-pod.yml
## test pod 실행 총 3개 실행 8080으로 열기
Service 배포하기
test-service.yml
apiVersion: v1 kind: Service metadata: name: kubia spec: ports: - port: 80 ##clusterIP port targetPort: 8080 ## pod port selector: app: kubia ## 대상 pod
$ k create -f test-service.yml
## service 실행
## service로 만든 LB인 10.96.187.178로 호출해도 정상적으로 호출됨(internal dns통해서 실제 ip찾아서 연결시킴)
외부와 연결하기
$ k edit svc kubia
## service의 type을 NodePort로 변경하기
## ClusterIP를 지우고 NodePort로 입력, 저장
(대소문자 띄어쓰기 주의!!)
$ k get svc
$ k get po -o wide
ip a
## ens192에 매칭되는 ip를 찾고, service의 port를 찾는다.
ens192의 ip와 service와 매칭되는 port 즉, http://10.10.12.141:31143 를 접속하면 아래와 같이 외부에서도 접속된다.
session affinity 구성
## 외부로 부터 처음 호출받을때는 random, 그러나 지속적으로 해당 ip로 부터 call올때는 한개의 서버와만 통신하도록 할때 아래와 같이 설
$ k edit service kubia
## sessionAffinity : None -> ClinetIP
(대소문자 띄어쓰기 주의!!)동일 서비스에 여러 포트 사용
apiVersion: v1 kind: Service metadata: name: kubia spec: ports: - port: 80 ## 내부 cilentIP는 8080으로 매칭 targetPort: 8080 - port: 443 ## 내부 clientIP는 1443으로 매칭 targetPort: 1443 selector: app: kubia ## 대상 pod
apiVersion: v1 kind: Service metadata: name: kubia spec: ports: - port: 80 ## 내부 cilentIP는 자동으로 80으로 매칭 - port: 443 ## 내부 clientIP는 자동으로 443으로 매칭 selector: app: kubia ## 대상 pod
DNS찾기
## dns는 10.96.0.10을 사용
## 10.96.0.10은 어디있을까?
$ k get po -n kube-system -o wide
## 여기아님 ip가 다른걸 볼 수 있음
$ k get svc -n kube-system
## 찾았따
Headless service
apiVersion: v1 kind: Service metadata: name: kubia-hl spec: clusterIP: None ports: - port: 80 targetPort: 8080 selector: app: kubia
## 라운드로빈말고 다른방식으로 쓰고 싶을때 사용
서비스가 셀렉터를 안주면 어떻게 될까
apiVersion: v1 kind: Service metadata: name: kubia-hl spec: clusterIP: None ports: - port: 80 targetPort: 8080
## 매핑되는 값을 삭제되면?
## label 매핑이 안된 놈들끼리 매핑되게 됨
'DevOps > 쿠버네티스' 카테고리의 다른 글
쿠버네티스 배포를 하기 위한 준비 readinessProbe, livenessProbe (975) | 2018.05.03 |
---|---|
INGRESS를 사용한 쿠버네티스 네트워크 심화(sticky session, ssl connection) (960) | 2018.05.03 |
INGRESS를 사용한 쿠버네티스 네트워크 설치 및 연결 (1439) | 2018.05.03 |
쿠버네티스 service를 통한 네트워크 설정 개념정리 (2059) | 2018.05.02 |
쿠버네티스 RC를 통한 POD생성 및 Probe를 통한 health check (973) | 2018.05.02 |
쿠버네티스 설치 (952) | 2018.05.02 |