kubernetes12 [Kubernetes] 쿠버네티스 PV, PVC 생성 및 마운트 PV와 PVC 정의 PV - Persistent Volume PVC - Persistent Volume Claim PV는 Container안 특정 폴더와 node의 특정폴더(물리디스크)를 마운트해주는 볼륨이다. 컨테이너가 삭제될 때 컨테이너안의 모든 폴더가 삭제되는데, 볼륨으로 마운트해주면 컨테이너가 삭제되어도 물리폴더는 삭제되지 않으므로 컨테이너를 다시 시작할때 마운트해줄수 있다. PVC는 deployment에 PV를 마운트해줄때 사용하는것이며 연결고리 역할을 해준다. 그래서 pv를 생성해주고 pvc를 생성하여 binding 상태를 확인하고 deployment에서 pvc를 이용하여 볼륨을 마운트하는 형태로 사용한다. yaml Example pv apiVersion: v1 kind: PersistentV.. 2023. 8. 30. [Jenkins] Kubernetes 연동 Jenkins - K8S 연동 쿠버네티스에서 쿠버네티스를 연동해보자. 쿠버네티스 사전셋팅 namespace 만들기kubectl create namespace jenkins serviceaccount 만들기kubectl create serviceaccount jenkins --namespace=jenkins kubernetes v1.20 버전이후로는 service account token이 보안패치로 인하여 자동생성이 되지않는다. 그래서 토큰을 직접 생성하여 serviceaccount에 마운트해주어야 한다. jenkinstoken.yaml apiVersion: v1 kind: Secret metadata: name: jenkins annotations: kubernetes.io/service-account.. 2023. 8. 7. [Kubernetes] HA-Cluster (고가용성 클러스터) 구축 - 3 HA-Cluster 구축하기 - 1편 https://librat.kr/entry/Kubernetes-HA-Cluster-고가용성-클러스터-구축-1 HA-Cluster 구축하기 - 2편 https://librat.kr/entry/Kubernetes-HA-Cluster-고가용성-클러스터-구축-2 [Kubernetes] HA-Cluster (고가용성 클러스터) 구축 - 1 HA-Cluster 구축하기 시작에 앞서.. 기본적인 containerd , kubernetes 가 Master, Worker nodes 에 설치되어 있는 상태로 시작한다 Containerd 설치 https://librat.kr/entry/Kubernetes-Containerd-설치하기-k8s-container-runtime Kuber li.. 2023. 8. 1. [Kubernetes] HA-Cluster (고가용성 클러스터) 구축 - 2 HA-Cluster 구축하기 1편 HA-Cluster 구축하기 2 1편에서 LB를 구성하였다. 현재 모든 노드들의 구성이 완료되었고 클러스터를 생성해야하는 단계로 넘어가자. Cluster Initializing 단일 마스터 노드에서는 마스터 자신을 kubernetes api 의 endpoint로 지정하여 워커들과 통신하면 된다. 하지만 고가용성 클러스터에서는 워커가 다중의 api server를 바라보고 통신할 수 없기 때문에 Load Balancer가 api server의 게이트웨이 같은 역할을 한다. Kubernetes Cluster를 최초로 구축할 때 옵션을 커맨드라인에 포함에서 구축할 수 있지만 이번엔 kubeadm-config.yaml 을 생성하여 구축해보겠다. kubeadm-config.yaml.. 2023. 7. 28. [Kubernetes] HA-Cluster (고가용성 클러스터) 구축 - 1 HA-Cluster 구축하기 시작에 앞서.. 기본적인 containerd , kubernetes 가 Master, Worker nodes 에 설치되어 있는 상태로 시작한다 Containerd 설치 https://librat.kr/entry/Kubernetes-Containerd-설치하기-k8s-container-runtime Kubernetes 설치 https://librat.kr/entry/Kubernetes-쿠버네티스k8s-1253-설치하기 구성도 HA-Proxy 구성하기 쿠버네티스 클러스터 네트워크 대역 : 10.10.10.0/24 Master node IP : 10.10.10.1~3 Worker node IP : 10.10.10.11~13 HA-Proxy (Load-Balancer) IP : 10.. 2023. 7. 26. [Kubernetes] 쿠버네티스 HA-Cluster (설명편) 쿠버네티스 HA-Cluster란 쿠버네티스는 단일 마스터 노드로 구성할 수도 있지만 아래와 같이 로드밸런서를 사용하여 다중마스터 노드를 사용하여 쿠버네티스 클러스터를 구성할 수 있다. 다중 마스터노드를 사용하는 클러스터를 HA-Cluster, High Available - Cluster 고가용성 클러스터라고 칭한다. 고가용성 클러스터를 사용하는 이유 트래픽 부하분산의 기능 과도한 트래픽이 발생할 경우 단일마스터의 경우 부하가 발생할 수 있다. 부하로 인한 마스터노드의 성능저하는 클러스터의 장애를 유발하기 때문에 다중마스터 노드로 트래픽을 부하분산 할 수 있다. 마스터 노드장애 극복 하나의 마스터노드가 장애가 발생하여도 클러스터를 유지할 수 있다. 단일 마스터 노드의 경우 하나의 마스터노드가 장애가 날 경.. 2023. 7. 25. [Kubernetes] 컨테이너 외부 노출 컨테이너 외부노출이란? 쿠버네티스에 배포된 컨테이너들은 기본적으로 쿠버네티스 클러스터 내에서 동작한다. 그러므로 외부에서 접근할 경우 서비스라는것을 생성해주어야 한다. 쿠버네티스에서 서비스는 expose 시킨다라고도 표현하며 외부에서 내부컨테이너 포트를 매핑시켜주는것과 같다. # 외부노출 시키기 - yaml 쿠버네티스에서 외부로 노출시키기위해선 service를 배포하거나 cli로 바로 expose 시킬 수 있다. 서비스를 배포할 때에는 yaml 파일을 작성하여 배포 할 수 있다. apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app.kubernetes.io/name: MyApp ports: - protocol: TCP po.. 2023. 7. 10. [Kubernetes] ETCD 백업 쿠버네티스는 ETCD를 사용하고 시스템의 모든 구성정보들이 저장되어있다. 쿠버네티스 클러스트가 손상되었을때 etcd를 통해 복구할 수 있기 때문에 etcd를 주기적으로 백업하는것이 좋다. etcd는 간단하게 회사의 각종 중요정보가 모두 모여있는 금고와 같은 곳으로, 매우 중요한 정보들을 복사본으로 나누어 여러개의 금고에 보관하고 있는것과 같다고 비유할 수 있다. etcd는 key-value db로써 분산시스템을 실행하는데 필요한 중요정보를 보관하고 관리함. 클러스터로 구성하여 하드웨어와 네트워크 파티션을 적절하게 견딜수 있도록 설계되어있다. redis와 비슷한 역할을 한다고 생각하지만 etcd는 장애극복과 고가용성을 지원하기 때문에 쿠버네티스가 채택하여 사용하는 db이다. 또한 etcd는 모든 저장된 데.. 2023. 6. 23. [Kubernetes] Kubernetes 초기화 쿠버네티스 완전 초기화하기 쿠버네티스를 사용하다보면 kubeadm reset을 사용하여 초기화 할 일이 간혹 생긴다. 하지만 제대로 reset을 진행하더라도 CNI나 잔여 정보들이 남을 수 있기 때문에 수동으로 삭제해주어야 한다. 아래의 명령어를 모든 노드에 실행시켜주고 재시작 해준다. systemctl stop kubelet systemctl stop containerd ip link delete cni0 ip link delete flannel.1 rm -rf /var/lib/cni/ rm -rf /run/flannel rm -rf /etc/cni rm -rf ~/.kube init 6 2023. 6. 23. [Kubernetes] 쿠버네티스 클러스터 구축 마스터노드 1개 워커노드 3개 구조로 쿠버네티스 클러스터를 구축하는 방법에 대해 포스팅하겠다. 우선 쿠버네티스는 container runtime과 kubernetes가 설치되어있어야하기 때문에 아래의 링크로 들어가 설치하길 바란다. Containerd : https://librat.kr/entry/Kubernetes-Containerd-설치하기-k8s-container-runtime kubernetes : https://librat.kr/entry/Kubernetes-쿠버네티스k8s-1253-설치하기 [Kubernetes] Containerd 설치하기 - k8s container runtime 쿠버네티스는 docker와 containerd를 container runtime으로 사용할 수 있다. 이 포스팅.. 2023. 6. 20. 이전 1 2 다음