레디니스 프르브
- pod를 위한
- 라이브니스 프로브는 상태가 좋지 않은 컨테이너를 종료하고, 새로운 것으로 교체하여 pod의 상태를 좋게 유지한다.
레디니스 프로브는 오직 pod가 요청을 수신할 수 있는 환경이 됐을때 수신한다.
- pod의 레디니스 프로브가 실패하면, 해당 pod는 endpoint 오브젝트에서 제거된다.
- 레디니스 프로브는 클라이언트가 정상 상태인 pod하고만 통신하게 하고, 시스템에 문제가 있다는 것을 알아차리지 못하게 한다.
서비스를 통해 pod에 접속하지 못할때
- 외부가 아닌 클러스터 안에서 클러스터IP를 대상으로 연결하고 있다는 것을 명심
- 서비스가 액세스 가능한지 확인하기 위해 서비스 ip로 ping 보내는 것을 귀찮게 여기지 마라
- readiness probe를 정의했다면 성공 여부를 확실히 확인하라
- pod가 서비스의 일부분인지 확인하라(kubectl get endpoints)
- 대상 port가 아닌 서비스에 의해 노출된 port에 연결하고 있는지를 확인하라
- pod ip에 직접 연결을 시도해서 pod가 정확한 port의 연결을 수락하고 있는지 확인하라
Volume
- pod의 각 컨테이너에는 고유의 분리된 파일 시스템이 있다.
- 실제 데이터가 있는 디렉토리를 보존하기 위해서 저장소 volume을 정의한다.
- 볼륨은 pod의 컴포넌트이다.
- 독립적인 쿠버네티스 오브젝트가 아니며 스스로 생성하거나 삭제할 수 없다.
- volume의 라이프 사이클은 pod 와 같다
[뜬금 명령어]
- 특정 리소스의 yaml 파일 확인을 위한 명령어
$kubectl get [리소스타입] [리소스명] -o yaml
ex) kubectl get pod podname -o yaml
kubectl get configmap configmapname -o yaml
emptyDir
- 동일한 pod에서 실행중인 컨테이너간에 파일을 공유할 때 유용
ConfigMap
- 설정 데이터를 저장하는 쿠버네티스 리소스
>ConfigMap을 구성하는 방법들
1) pod들 중 하나로 ConfigMap을 사용
$kubectl create configmap [configmap명] --from-literal=[key값]=[value값]
2) 개별 파일(을 읽어와서) 내용으로 ConfigMap 엔트리 생성
- 외부의 설정파일을 통해서 설정 데이터를 저장할 수 있다.
$kubectl create configmap my-config --from-file = config-file.conf
-> 위 명령어를 실행하면 kubectl 을 실행하는 디렉터리에서 config-file.conf를 찾는다.
-> 파일이름이 맵의 키로 사용된다. 파일의 내용이 value 로...
-> 수동으로 key명 지정도 가능하다.
$kubectl create configmap my-config --from-file = customkey = config-file.conf
>ConfigMap의 값을 pod의 컨테이너로 가져오는 방법
kind: Pod
metadata:
name: fortune-env-from-configmap
spec:
containers:
- image: luksa/fortune:env
env:
- name: INTERVAL
valueFrom:
configMapKeyRef:
name: fortune-config
key: sleep-interval
2) configmap의 모든 항목을 한번에 환경변수로 전달하기
- envFrom 속성을 사용
spec:
containers:
- image: some-image
envFrom:
- prefix: CONFIG_
configMapRef:
name: my-config-map
->결과는 configMap 의 key 값에 앞에 prefix 가 붙은 값으로의 환경변수가 컨테이너 내부에 존재하게 됨
3) configmap 항목을 명령해 인자로 전달하기
- 컨테이너에서 실행중인 메인 프로세서로 configMap의 값을 인자로 전달하는 방법임
4) ConfigMap 엔트리를 파일로 노출하기 위해 ConfigMap Volume 사용
- 설정파일들이 많을 경우에 사용
- configMap 볼륨은 ConfigMap의 각 엔트리를 파일로 표시한다.
> ConfigMap을 사용해 볼륨을 통해 노출시키면 Pod를 다시 만들거나 Container를 다시 시작하지 않고도 설정을 업데이트 할 수 있음
1)configmap 파일 수정
$kubectl edit configmap [컨피그맵명]
Secret
- ConfigMap 과 유사 , key /value 쌍
- 일반설정 데이터를 저장할때는 ConfigMap 을 사용
- 중요한 , 민감한 데이터를 저장할때는 Secret을 사용
> secret 리소스 나열
$kubectl get secret
'DevOps' 카테고리의 다른 글
쿠버네티스 구조 (0) | 2019.01.10 |
---|---|
pod-레플리케이션컨트롤러-서비스 (0) | 2019.01.10 |
쿠버네티스 명령어 #4 (0) | 2018.12.31 |
Docker 명령어 (0) | 2018.12.28 |
쿠버네티스 명령어#3 (0) | 2018.12.27 |