Flannel이란 Flannel: 서로 다른 노드에 있는 pod 간 통신을 완성하기 위해서 network plugin이 필요한데, 이 때 그 중 하나가 Flannel plugin이다 노드1에서 노드 2로 다른 ip끼리 패킷을 보낼 때, 보내는 컨테이너의 출발지와 목적지를 가지고 있고, flannel에서 패킷을 주고받는 node의 출발지와 목적지 정보를 UDP 로 캡슐화해서 보내는 역할을 수행한다. Flannel 설치하기 공식 github: https://github.com/flannel-io/flannel GitHub - flannel-io/flannel: flannel is a network fabric for containers, designed for Kubernetes flannel is a ne..
Minikube 설치중 Exiting due to GUEST_MISSING_CONNTRACK: Sorry, Kubernetes 1.20.2 requires conntrack to be installed in root's path 에러가 뜰 경우 sudo apt install conntrack
설치전 서버가 하나이더라도 virtualbox에서 새로운 vm에 minikube를 설치하길 추천 Kubectl, Kubelet, kubeadm 이 설치되어있는지 확인 [kubectl]은 쿠버네티스 클러스터에 대해 명령을 실행할 수 있는 CLI이다. 이를 사용하여, 애플리케이션을 배포하고, 클러스터 리소스를 검사 및 관리하여 로그를 볼 수 있다. 설치 방법은 아래와 같다. Kubectl, Kubelet, kubeadm 설치하기 참고 : 공식문서 sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring..
1.DaemonSet DaemonSet은 노드의 자원상태와는 상관없이, 모든 노드에 pod가 하나씩 생김(ReplicaSet은 node의 자원상태애 따라 pod가 차등적으로 생김) 이렇게 각각의 노드에 하나씩 설치해서 사용해하야하는 서비스 목록 Prometheus: 각 노드들의 성능 모니터링 fluentd: 로그 수집 GlusterFS: 노드들을 Storage로 사용해서 네트워크 파일시스템을 구축 가능 selector와 template이 있어서 모든 노드에서 pod를 생성. 만약 노드들의 os종류가 달랐을때 ubuntu에서는 pod을 생성하고 싶지 않다면, template의 nodeSelector에 os:centos로 설정해주면 됨 template에 hostport를 설정을 하면 서비스에서의 extern..
0. Deployment란 현재 한 서비스가 운영중인데 ,이 서비스를 업데이트 해야되서 재배포를 해야될 때 도움을 주는 오브젝트 ReCreate: 디플로이먼트를 만들면 v1의 pod들이 만드러짐. pod하나당 하나씩 자원이 사용된다고 가정을 하면, 업그레이드를 할 때 디플로이먼트는 먼저 pod를 삭제한다. 그렇게 되면 서비스에 대한 다운타임이 발생하고 자원사용량도 없어진다. 다음으로 v2에 대한 pod 2개를 만든다. 일시적인 정지가 가능할 때만 사용되는 방법 Rolling Upate: 디플로이먼트는 먼저 v2에 pod를 하나 만듬. 자원사용량이 그만큼 늘어남. 이 상태에서는 누군가는 v1에 접속이되고, 누군가는 v2에 접속이 됨. 그리고나서 v1을 삭제하면 사용자들은 v2에만 접속을 하게 됨 중간에 추..
0. Controller의 기능 Auto Healing Auto Scailing Software Update Job 1.Template pod가 다운되면, replication안에 있는 template으로 pod를 새로 만들어주게 됨 template에 pod:v2에 대한 업데이트를 진행하고 , 기존에 연결되어 있는 pod을 다운시키고 새로 업그레이드 된 pod:v2를 생성 2.Replicas replicas의 개수만큼 pod의 개수가 관리되고, 그 pod가 삭제되면, replicas의 개수만큼 재생성해줌 repliacas의 개수가 늘어나면 그 수만큼 pod가 늘어나면서 scale out이 됨 replicas에 pod없이 개수만 지정하고, template을 만들면, replicas는 현재 pod가 없기 때..
0.이 오브젝트들을 쓰는 이유 클러스터안에는 여러 네임스페이스들을 만들 수 있고, 네임스페이스 안에는 여러 pod를 만들 수 있고, 한 네임스페이스안에서 클러스터 내부의 리소스 대부분을 사용하면, 다른 네임스페이스 안에 있는 파드 입장에선 더 이상 사용할 수 있는 자원이 없어서 문제가 발생함 이러한 문제를 해결하기 위해서 Resource Quota 가 존재하는데, 네임스페이스마다 최대 한계를 설정하여, 다른 네임스페이스에 있는 파드에 영향을 미치지 않게함 Resource Quota외에도 Limit Range를 설정하여 네임스페이스에 들어오는 범위를 설정가능(최소~최대) 1.Namespace 한 네이스페이스 안의 오브젝트들은 이름이 중복될 수 없음 다른 네임스페이스 안에 있는 자원들끼는 연결할 수 없음(P..
★configmap: 개발환경과 상용환경의 설정을 각각 다르게 하기 위해, 외부에서 관리하는 파일을 모아놓은 것 ★secret: 보안 관련 파일을 모아 놓은 것 1.Env (Literal) -데이터로 configmap에 상수를 넣음 -key:value -secret은 pod으로 주입될때 자동으로 디코딩되어 원래의 값이 보이게됨 -쿠버네티스에서 일반적인 오브젝트들은 쿠버네티스 DB에 저장이 되는데, secret은 메모리에 저장(secret을 많이 만들게 되면 용량상 시스템에 영향을 미치게 됨) 2.Env (File) -데이터로 파일을 configmap에 넣음 -바로 pod에 올리면 key가 file이름이 되니까, key를 새로 정의해서 content만 넣기 -파일을 configmap으로 만드는 것은 das..