Kubernetes

파드 내에 초기화만을 담당하는 컨테이너를 설정할 수도 있다. 그러면 초기화만을 수행하는 컨테이너와 요청을 처리하는 컨테이너를 별도로 개발하여 각각 재사용할 수 있다. 예를 들어 스토리지를 마운트할 때 '스토리지 안에 새로운 디럭터리를 만들고, 소유자를 변경한 후 데이터를 저장'하는 것과 같은 초기화 처리를 전담할 수 있다. Init-sample.yml apiVersion: v1 kind: Pod metadata: name: init-sample spec: containers: - name: main # 메인 컨테이너 image: ubuntu command: ["/bin/sh"] args: ["-c", "tail -f /dev/null"] volumeMounts: - mountPath: /docs # 마운..
파드의 동작 확인 이 전 블로그 글에서 생성한 nginx 파드가 정상적으로 동작하는지 확인해 보겠다. 이 nginx 파드는 백그라운드로 돌면서 클러스터 네트워크의 TCP 80번 포트에서 요청을 대기한다. 클러스터 네트워크는 K8s 클러스터를 구성하는 노드 간의 통신을 위한 폐쇄형 네트워크다. 다른 말로는 파드 네트워크라고 불린다. 클러스터 네트워크에서 오픈한 포트는 K8s 클러스터를 호스팅하는 컴퓨터에서도 접근할 수 없다. 이 말은 외부에서 접속할 수 없다는 뜻이다. 그렇기 때문에 대화형 파드를 기동해 접속해야 한다. 파드의 클러스터 네트워크의 IP 주소를 확인하고 싶은 경우에는 -o wide 옵션을 추가하면 된다. 여기서 얻은 IP에 curl로 접속을 시도해보면 다음과 같이 타임아웃이 될 뿐이다. K8..
매니페스트란 쿠버네티스의 오브젝트를 생성하기 위한 메타 정보를 YAML이나 JSON으로 기술한 파일이다. 실제 파드를 단독으로 기동하는 매니페스트를 작성하는 경우는 많지 않다. 보통 컨트롤러에 대한 매니페스트를 작성하는데 이때 파드에 대한 정보를 기술하는 부분이 포함된다. 이를 파드 템플릿이라고 하며, 파드의 매니페스트와 같다. 따라서 파드의 매니페스트를 기술하는 방법을 알고 있으면 컨트롤러를 사용할 때 도움이 된다. Nginx 컨테이너를 실행하는 매니페스트를 작성해보자. 주로 YAML파일이 JSON 파일보다 가독성이 좋아 많이 사용한다. 그리고 매니페스트를 작성할 때는 API 래퍼런스를 참고하는 것이 좋다. apiVersion: v1 kind: Pod metadata: name: nginx spen: ..
kubectl run에 옵션을 지정하면 파드를 디플로이먼트 컨트롤러 제어 하에 실행하는 것이 가능하다. 파드가 정지되었을 때 재기동시킬 필요가 있는지에 따라 옵션을 주면 된다. 이때 사용하는 옵션이 --restart=Always다. 반대로 파드만 독립적으로 실행하고 싶을 때는 --restart=Never 옵션을 주면 된다. --restart 옵션을 생략하면 기본값으로 Always로 실행된다. 즉 기본 적으로 디플로이먼트 컨트롤러에 의해 파드가 기동 된다. 디플로이먼트 컨트롤러 제어 하에 실행하는 방법은 아래와 같다. kubectl에 run은 서브 커맨드의 기능이 지나치게 방대해지는 것을 막기 위해 파드 자체를 만들 때만 run을 사용하고 디플로이먼트를 만들 때는 kubectl create deployme..
beekei
'Kubernetes' 태그의 글 목록