728x90

Kubernetes 14

[Kubernetes] 16. 쿠버네티스 Ingress 인그레스

[주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다! 피드백 부탁드립니다. (- -)(_ _) 꾸벅 [ Ingress란? ] [ Ingress 실습 ] Question 1 : Application Service 운영 TASK : ingress-nginx namespace 에 nginx 이미지를 app=nginx 레이블을 가지고 실행하는 nginx pod를 구성하세요. 앞서 생성한 nginx Pod를 서비스 하는 nginx service를 생성하시오 현재 appjs-service 이름의 Service는 이미 동작중입니다. 별도 구성이 필요 없습니다. Question 2 : Ingress 구성 TASK : app-ingress.yaml 파일을 생성하여 ..

[Kubernetes] 15. 쿠버네티스 Configmap과 Secret (컨피그맵, 시크릿)

[주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다! 피드백 부탁드립니다. (- -)(_ _) 꾸벅 컨피그맵(ConfigMap) 컨피그맵은 키-값 쌍으로 기밀이 아닌 데이터를 저장하는 데 사용하는 API 오브젝트이다. 파드는 볼륨에서 환경 변수, 커맨드-라인 인수 또는 구성 파일로 컨피그맵을 사용할 수 있다. 컨피그맵 kubernetes.io 애플리케이션을 배포하다 보면 환경에 따라 다른 설정 값을 사용하는 경우가 있는데, 도커 이미지는 정적이므로 각 환경에 따라 유연하게 변경할 수 없다는 단점이 있다. 대안으로 Yaml를 작성할 때 env 필드에서 환경 변수들을 작성하는 방법이 있지만 이 역시 하드코딩이다. 이러한 YMAL 파일과 설정값을 분리할 ..

[kubernetes] 쿠버네티스 클러스터 깔끔하게 초기화 및 오류조치

[주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다! 피드백 부탁드립니다. (- -)(_ _) 꾸벅 해당 글은 데이터가 싹 날라가는 초기화니 데이터가 날아가면 안되는 분은 따라하지 마세요 [ 클러스터 초기화 ] # Docker 초기화 $ docker rm -f `docker ps -aq` $ sudo rm -rf /var/lib/docker/ $ sudo systemctl restart docker # kubeadm 초기화 $ sudo kubeadm reset cleanup-node $ sudo systemctl restart kubelet [ Trouble Shooting ] 1. 클러스터 kubeadm init 중 CRI 에러 "container..

[Kubernetes] 11. 쿠버네티스 etcd 백업/복원

[주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다! 피드백 부탁드립니다. (- -)(_ _) 꾸벅 [ etcd란? ] etcd A distributed, reliable key-value store for the most critical data of a distributed system etcd.io 클러스터의 설정 공유, 서비스 검색 및 스케줄러 조정을 위한 오픈소스 분산 Key-Value 스토리지이다. 컨테이너 오케스트레이션의 사실상 표준 시스템인 쿠버네티스의 기본 데이터 저장소로 쓰이며 클러스터 상태를 저장하고 복제한다. 실제로 etcd는 하나의 Pod 형태로 저장이 되며, 이 pod에 모든 운영 데이터를 저장한다. 예를 들어 어느 노드에 ..

[Kubernetes] 10. 쿠버네티스 패키지 매니저 helm

[주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다! 피드백 부탁드립니다. (- -)(_ _) 꾸벅 [ Helm이란? ] 우분투의 apt나 Centos의 yum처럼 쿠버네티스용 패키지 매니지먼트 도구이다. 쿠버네티스 환경에서 배포를 한다고 하면, 단순히 컨테이너를 배포하여 사용하기엔 한계가 있다. 디플로이먼트로 Pod를 배포하여 status에 맞게 관리하여야 하고, 서비스를 배포하여 외부로 IP를 노출시키도 하고, PVC 같은 볼륨 정책적인 부분도 배포해야한다. 이러한 모든 작업을 Helm이라는 도구를 통해 리소스를 한번에 배포해주는 역할을 한다. CLI 툴인 Helm은 다음과 같이 동작한다. 쿠버네티스 Cluster 안에 Helm Server가 있..

[Kubernetes] 9. 쿠버네티스 kubeadm을 이용한 클러스터 구성

[주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다! 피드백 부탁드립니다. (- -)(_ _) 꾸벅 https://kubernetes.io/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ kubeadm 설치하기 이 페이지에서는 kubeadm 툴박스를 설치하는 방법을 보여준다. 이 설치 프로세스를 수행한 후 kubeadm으로 클러스터를 만드는 방법에 대한 자세한 내용은 kubeadm을 사용하여 클러스터 생성하기 페이 kubernetes.io Ubuntu 18.04 에서 진행하였고, Docker가 이미 설치되어있다는 가정하에 진행하였습니다. [ 설치 전 Check List ] 호환..

[Kubernetes] 8. 쿠버네티스 config와 kubectl의 context

[주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다! 피드백 부탁드립니다. (- -)(_ _) 꾸벅 [ Context란? ] kubectl은 클러스터에 명령을 내릴 수 있는 Command-Line 툴이다. 근데 이 kubectl이란게 어느 클러스트에 연결하여 사용할지 설정되어 있어야하는데, 특히 다중 클러스터 환경에서 Context를 설정해 주어야 kubectl이 어느 클러스터에 연결될지 결정된다. 예전에 minikube로 실습할 때, $ minikube start 명령은 자동으로 kubectl의 context를 minikube로 설정해주기 때문에 따로 kubectl의 context를 설정할 필요 없이 바로 minikube 클러스터에 명령이 가능했었..

[Kubernetes] 7. 쿠버네티스 volume 마운트

[주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다! 피드백 부탁드립니다. (- -)(_ _) 꾸벅 [ 디스크 볼륨 종류 ] Temp Local Network emptyDir hostPath GlusterFS gitRepo NFS iSCSI gcePersistentDisk AWS EBS azureDisk Fiber Channel Secret VshereVolume 다양한 방법으로 Pod에 볼륨을 마운트 가능하다. emptyDir : Pod가 생성될때 생성되고, Pod가 삭제 될때 같이 삭제되는 임시 볼륨 hostPath : 노드의 로컬 디스크의 경로를 Pod에서 마운트해서 사용. 같은 hostPath에 있는 볼륨은 여러 Pod 사이에서 공유되어 사용..

[Kubernetes] 6. 쿠버네티스 Service란? (NodePort, nginx 실습)

[주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다! 피드백 부탁드립니다. (- -)(_ _) 꾸벅 https://kubernetes.io/ko/docs/concepts/services-networking/service/ [ Service ] 위 그림을 보면, Service B는 10.10.10.2의 내부 아이피를 갖고있는 Pod와 그 옆에 10.10.10.3 ~ 10.10.10.4의 주소를 갖고 있는 Pod가 논리적으로 합쳐져 있음을 나타낸다. 물론 Service에도 내부 아아피가 부여되어있다. 마찬가지로 맨 밑에 그림처럼 Pod 하나만으로도 Service를 만들 수 있다. 즉 Service란, Pod의 논리적 집합이며 어떻게 접근할지에 대한 정책..

[Kubernetes] 5. 쿠버네티스 YAML configuration 파일

[주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다! 피드백 부탁드립니다. (- -)(_ _) 꾸벅 [ Configuration 파일의 3가지 구성요소 ] 1. metadata : 리소스의 라벨, 이름 등을 지정함 2. specificaion : 각 컴포넌트에 대한 상세 설명. 어떤 오브젝트 종류인지에 따라 다른 내용을 담는다. 3. status : 쿠버네티스가 자동으로 생성, 자신의 원하는 상태가 되도록 현재 상태를 기술 예를 들어 spec에 replicas가 2라고 명시되어 있지만 현재 상태인 status에는 1개 밖에 생성이 안됐기 때문에, 목표 상태로 맞추기 위해 replicas를 하나 더 생성하게 되는 것이다. 이외에 apiVersion은 ..

728x90