티스토리 뷰

1. messaging application 노출시키는 서비스 생성

  • name: messaging-service
  • port: 6379
  • type: ClusterIP

Solution

$> kubectl expose pod messaging --type=ClusterIP --port=6379 --name=messaging-service

📖참고자료

Using a Service to Expose Your App
kubectl-commands (expose)

2. web-dev-app application 노출시키는 서비스 생성

  • name: web-dev-app-service
  • port: 30082
  • type: NodePort
  • web-dev-app application 은 8080 port 로 수신 중

Solution

# pod에 달린 label 확인 (app=web-dev-app)
$> kubectl get pods --show-labels

$> kubectl create service nodeport web-dev-app-service --node-port=30082 --tcp=8080:8080 --dry-run=client -o yaml > web-dev-app-service.yaml

# selector 수정
$> vi web-dev-app-service.yaml

$> kubectl create -f web-dev-app-service.yaml

kubectl expose 를 활용해서 service를 생성할 수도 있음

📖참고자료

kubectl-commands (create service nodeport)

3. Service & Pod DNS Resolution Record

클러스터 내에서 서비스 및 포드 이름을 조회 할 수 있는지 테스트

  • Pod 생성
    • name: nginx-resolver
    • image: nginx
  • Service 생성
    • name: nginx-resolver-service
  • 결과 값은 /root/nginx.svc/root/nginx.pod 에 저장
# Pod 생성
$> kubectl run nginx-resolver --image=nginx

# Service 생성
$> kubectl expose pod nginx-resolver --port=80 --target-port=80 --name=nginx-resolver-service

# Test Pod 생성
$> kubectl apply -f https://k8s.io/examples/admin/dns/dnsutils.yaml

# dnsutils Pod에서 nslookup 명령어 실행 (nginx-resolver-service)
kubectl exec -i -t dnsutils -- nslookup nginx-resolver-service > /root/nginx.svc

# Pod  IP 정보 확인
kubectl get pods nginx-resolver -o wide

# dnsutils Pod에서 nslookup 명령어 실행 (nginx-resolver, ip: 10.244.1.11)
kubectl exec -i -t dnsutils -- nslookup 10-244-1-11.default.pod > /root/nginx.pod

dns에 대한 상세 내용은 DNS for Services and Pods 를 확인하시기 바랍니다.

📖참고자료

Debugging DNS Resolution
DNS for Services and Pods

'Kubernetes' 카테고리의 다른 글

[CKA] 5. Troubleshooting  (0) 2020.09.19
[CKA] 4. Storage  (0) 2020.09.19
[CKA] 2. Workloads & Scheduling  (0) 2020.09.19
[CKA] 1. Cluster Architecture, Installation & Configuration  (0) 2020.09.19
Node Scheduling  (0) 2020.09.18
댓글