쿠버네티스(5장 1회독 이해안감 추가 수정필요)

MinSeoCho·2021년 9월 5일
0

Kubernetes in Action

목록 보기
3/4

Service

서비스를 제공하는 파드 그룹에 지속적인 단일 접점 만들기 ( 문 만들기?)

레이블 셀렉터 + 로드 밸런싱? 을 통해서 동일한 세트에 속하는 파드를 지정한다.

  • 서비스 생성 하는데 가장 쉬운 방법 Kubecitl expose 사용

실행중인 컨테이너에 원격으로 명령어를 실행하는 방법은

  1. kubectl get pods로 조회 후 한개의 pod선택
  2. kubectl get svc 으로 선택한 pod의 ip 주소 획득

kubectl exec pod 이름 -- curl -s http://ip주소

이 방법은 다른 파드로 갈 가능성이 높기에 같은 주소로 리다이렉션 하고 싶다면, sessionAffinity : ClientIP로 바꿔야한다.

서비스 검색

FQDN을 이용해서 검색을 하고 진행을 할 수 있다.

보통

서비스이름 . 네임스페이스. svc.cluster.local 모든 클러스터의 로컬 서비스 이름에 사용된는 클러스터의 도메인 접두사이다.

접미사와 네임스페이스는 생략 가능 = > 서비스 이름으로 접근이 가능.

파드 컨테이너 내에서 쉘을 실행하려면

kubectl exec -it 파드 이름 sh으러(요새는 bash가 안들어가 있기에 이 명령어로)

외부와의 통신

  • 서비스 로드밸런싱 + 서비스 검색 모두 활용 가능

내용 확인은 kubectl describe svc 서비스 이름

EndPoint를 확인 하면 된다.

서비스 엔드 포인트를 수동으로 구현가능한데

이때, 서비스 이름과 엔드포인트 오브젝트 이름은 동일해야한다.

외부 클라이언트에 서비스 노출

  • 노트포트로 서비스 유형 설정
  • 로드밸런서로 설정
  • 단일 ip주소로 여러서비스 노출하는 인그레스 리소스 만들기

인그레이션

http에서 한개의 ip주소로 여러 서비스에 접근이 가능하게해준다.

Readiness probe

특정 파드가 클라이언트 요청을 수신 할 수 있는 지 결정

  • 프로세스를 실행한느 Exec 프로브는 컨테이너 상태를 프로세스의 종료 상태 코드로 결정
  • HTTP GET 프로브는 HTTPGET 요청을 컨테이너로 보내고 응답을 HTTp상태로 코드를 보고 컨테이너가 준비됐는지 여부를 결정한다.
  • TCP 소켓 프로브는 컨테이너의 지정된 포트로 TCP연결을 연다. 소켓이 연결되면 컨테이너가 준비된것으로 간주하낟.

준비상태 점검에 실패하더라도 컨테이너가 종료되거나 다시 시작되지 않는다.요청을 처리할 준비된 파드의 컨테이너만 요청을 수신하도록한다.

profile
열심히 하자..!

0개의 댓글