본문 바로가기

⭐ Kubernetes & EKS/Kubernetes (쿠버네티스)

(28)
init 컨테이너 실행하기 # Init 컨테이너 - 초기화를 실행해주는 컨에티너 - 주 컨테이너가 실행되기 전에 미리 실행되어 초기화를 해주는 컨테이너 # 쿠버네티스 공식 사이트에서 Init Containers 검색 : kind: 검색하여 소스코드 찾기 apiVersion: v1 kind: Pod metadata: name: myapp-pod labels: app: myapp spec: containers: - name: myapp-container image: busybox:1.28 command: ['sh', '-c', 'echo The app is running! && sleep 3600'] initContainers: - name: init-myservice image: busybox:1.28 command: ['sh', ..
하나의 포드에서 멀티 컨테이너 실행하기 # 한 포드에 멀티 컨테이너 # 이전 생성된 yaml 파일을 복사하여 재사용 cp busybox-cmd-pod.yaml nginx-redis-pod.yaml vim nginx-redis-pod.yaml # 컨테이너 쪽에 2개의 컨테이너를 넣는게 중요하다. apiVersion: v1 kind: Pod metadata: name: nginx-redis-pod spec: containers: - name: nginx image: nginx ports: - containerPort: 80 - name: redis image: redis # 실행하기 kubectl create -f nginx-redis-pod.yaml kubectl get pod kubectl get pod -w # 2개의 컨테이너가 정상적으로 ..
초기 명령어 및 아규먼트 전달과 실행 # 초기 명령어 및 아규먼티 전달과 실행 쿠버네티스 공식 사이트 > pod overview > kind: apiVersion: v1 kind: Pod metadata: name: busybox labels: app: myapp spec: containers: - name: myapp-container image: busybox command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600'] vim busybox-cmd-pod.yaml kubectl create -f busybox-cmd-pod.yaml kubectl get pod - 실행되자 마자 CrashLoopBackOff 가 발생한다. - busybox는 서버의 형태가 아니고 애플리케이션이기 때문에 실..
쿠버네티스 환경 변수 설정 - my-sql 비밀번호를 환경변수로 전달하기 # 쿠버네티스 환경 변수 설정 연습문제 kubectl get secret kubectl get secret -n kube-system kubectl get secret -n kube-system | wc -l kubectl get secret -n kube-system | grep default kubectl get secret -n kube-system default-token-tnx5c -o yaml # 인코딩 상태에서 내용을 확인하고 싶을때 kubectl describe secret -n kube-system default-token-tnx5c # 인코딩되어있는 정보를 디코딩 하여 보는 방법 kubectl get secret -n kube-system default-token-tnx5c -o yam..
컨테이너 환경변수 전달방법 # 컨테이너 환경 변수 전달 방법 - yaml 파일 활용 - 환경변수를 유연하게 관리하기 위해서는 Config Map이나 Secret을 활용한다. # 쿠버네티스 공식 사이트에서 검색하기 env > 검색 > Define Environment Variables for a Container - Kubernetes > 클릭 > 예제코드 복사 vim envar.yaml apiVersion: v1 kind: Pod metadata: name: envar-demo labels: purpose: demonstrate-envars spec: containers: - name: envar-demo-container image: gcr.io/google-samples/node-hello:1.0 env: - name: DEM..
우분투에 비주얼 스튜디오 , 쿠버네티스 설치 및 yaml 파일 작성과 적용 # 버추얼 박스에 비주얼 스튜디오 설치하기 kubectl get nodes - kubectl을 사용할 수 있는 환경에서 vs code를 설치하면 된다. - 나는 마스터 노드에서 kubectl을 사용하므로 마스터노드에 설치 하겠다. # vs 코드 설치 sudo snap install code --classic # vs 코드 실행 code 우분투 icon 검색에서 code 검색 > icon 클릭하여 실행 # VS를 활용한 Yaml 파일 작성과 적용 # 쿠버네티스 플러그인 설치 extention 아이콘 클릭 > kubenetes 검색 > 설치 - 설치가 완료되면 왼쪽 사용자탭에 항해사 아이콘이 생김 - 아이콘을 클릭하여 다양한 정보를 커맨드에서 명령어로 실행하지 않고, Gui 환경에서 확인이 가능하다. # V..
hostpath 컨테이너와 노드간 데이터 공유 # hostpath 컨테이너와 노드간 데이터 공유 # work1과 work2에서 진행 sudo mkdir /var/htdocs sudo -i echo "work1" > /var/htdocs/index.html cat /var/htdocs/index.html - 동일한 방식으로 work2에도 데이터를 저장 gedit count-httpd.yaml apiVersion: v1 kind: Pod metadata: name: hostpath-http spec: containers: - image: httpd name: web-server volumeMounts: - name: html mountPath: /usr/local/apache2/htdocs readOnly: true ports: - containerPo..
레플리케이션 컨트롤러 # 레플리케이션 컨트롤러란? - 쿠버네티스 컨트롤러는 각 리소스에서 지정한 의도한 상태를 클러스터의 실제 상태와 지속적으로 비교하고 동기화하기 위해 필요한 작업을 수행한다. 의도한 상태와 실제 상태를 일치 시키기 위한 조정작업이 영원히 반복되므로 이 과정을 조정루프 라고 부른다. - 일단 파드를 수동으로 중지하고 바로 확인해보자. 파드가 실행중인지부터 확인을 한다. - 하나의 pod를 delete 명령어로 중지 후 상태를 확인해보면 파드가 종료되고, 새로운 파드가 생성된 것을 확인 할 수 있다. 조정 루프가 작동한 결과이다. - 디플로이먼트에서 해당 파드가 항상 실행중이어야 한다고 선언을 했으므로, 파드를 직접 제거하더라고 쿠버네티스는 이를 운영자의 실수로 판단하고 파드를 재 실행 한다. - 문제가 발생..