2023. 2. 3. 09:03ㆍDevOps/CKA Test 준비
service type - cluster ip
cluster ip
==> yaml에서 지정하지 않더라도 default값, 파드 그룹에 대한 ip에 대해 단일ip를 지원해 준다.
service는 seleter를 이용해 lable(key/velue)에 지정된 pod를 묶어 하나의 cluster ip로 묶어준다. 이때 해당 ip는 10.96.0.0/12 범위 안에서 할당된다.
cluster 내부에서만 ip가 동작하기 때문에 외부의 ip대역과는 통신할 수 없다.
pod그룹에 clusterip 생성하기
deployment name : web
image : nginx
port : 80
replicas : 2
service name: web
type : clusterIP
port : 80
1. deployment생성하기
kubectl create deployment web --image=nginx --port=80 --replicas=2 --dry-run=client -o yaml > deployemnt.yaml
2. service 만들기
kubectl expose deployment web --type=ClusertIP --port=80 --target-port=80 --dry-run=client -o -yaml > service.yaml
문제
==> * 3.cka-deployment에서 만든 devops를 사용
k8s cluster에서 운영되고 있는 deployement의 service를 만드세요
namespace: devops
deployment : eshop-order
service name : eshop-order-svc
type : CluseterIP
port : 80
1. deployment가 있는지 먼저 확인
==> kubectl get deployments.apps -n devops -o wide
2. pod 정보를 확인하기
kubectl get pod -n devops -o wide
==> kubectl describe pod --namespace devops "pod name"
port 가 none 일 경우 기본값을 가지고 있다.
3. service만들기
kubectl expose deployment -n devops eshop-order --type=ClusterIP --port=80 target=80 --name=eshop-order-svc --dry-run=client -o yaml
4.service 정보 확인해 보기
kubectl describe service --n devops eshop-order-svc
문제
pod를 이용한 named service를 구성해라.
미리 배포한 front-end 에 기존의 nginx 컨테이너 port 80/tcp를 expose하는 http라는 이름을 추가하시오. 이 후 front-end-svc라는 service를 만들고 준비된 node의 'NodePort'를 통해 개별 pods가 expose가 되도록 service를 구성 하시오.
작업 클러스터 : k8s
1. 작업 클러스터로 이동하기
==> kubectl config use-context k8s
2. front-end가 구동되고 있는지 확인하기
==> kubectl get deployments.apps front-end -o yaml > front-end.yaml
3. yaml 값 확인 및 수정하기
apiVersion: apps/v1
kind: Deployment
metadata:
name: front-end
spec:
replicas: 2
selector:
matchLabels:
run: nginx
template:
metadata:
labels:
run: nginx
spec:
containers:
- image: nginx
name: http
ports:
- containerPort: 80
name: http
==> port 이름 설정하기
---
==> 1개의 yaml에 2개 이상의 conatiner를 기록하기 위해서는 "---"를 반드시 추가한다.
apiVersion: v1
kind: Service
metadata:
name: front-end-svc
==> 문제에서 주어진 service의 name을 지정
spec:
selector:
run: nginx
==> 상단에서 만든 container pods를 묶기 위해 labels를 추가한다.
ports :
- name: service-name
protocol: TCP
port: 80
targetPort: http
==> 문제에서 지정한 타겟포트를 name으로 지정
4. yaml파일을 실행하기
==> kubectl apply -f front-end.yaml
5. nodeprot 변경하기
==> kubectl edit svc front-end-svc
해당 내용의 spec/type/ 의 내용을 NodePort로 변경
'NodePort'를 통해 개별 pods가 expose
'DevOps > CKA Test 준비' 카테고리의 다른 글
10.CAK-Newtork Policy (0) | 2023.02.08 |
---|---|
09.CKA-service_type_NodePort 초안 (0) | 2023.02.08 |
07.CKA-service (0) | 2023.02.03 |
06.CKA-SECRET 초안 (0) | 2023.02.03 |
05.CKA-SECRET 초안 (0) | 2023.01.19 |