본문 바로가기

Kubernetes

[draft] 쿠버네티스에 Flannel 네트워크 플러그인을 설치하는 방법 쿠버네티스에 Flannel 네트워크 플러그인을 설치하는 방법Flannel은 쿠버네티스 클러스터에서 파드 간 통신을 가능하게 하는 네트워크 플러그인입니다. kubernetes coredns 에러(ContainerCreating)$ kubectl get pods --namespace=kube-systemNAME READY STATUS RESTARTS AGEcoredns-f9fd979d6-z6dtd 0/1 ContainerCreating 0 45mcoredns-f9fd979d6-z7j97 0/1 ContainerCreating 0 45m kube.. 더보기
[draft] 쿠버네티스 서비스 유형 쿠버네티스 서비스 유형(Kubernetes Service Types)Kubernetes에서 서비스 유형은 클러스터 내의 애플리케이션을 외부 또는 다른 파드와 연결하는 방법을 정의합니다. 서비스는 파드의 IP 주소가 동적으로 변경될 수 있기 때문에 안정적인 네트워크 접점을 제공하는 역할을 합니다.Service 유형 비교유형접근 범위비고Cluster IP클러스터 내부NodePort 또는 LoadBalancer를 사용하여 외부에서 접근할 수 있도록 추가 설정이 필요합니다.NodePort클러스터 내부 및 외부각 노드의 특정 포트를 사용하여 서비스에 접근합니다. NodePort 범위는 일반적으로 30000~32767입니다.LoadBalancer클러스터 외부클라우드 제공업체에서 제공하는 LoadBalancer를 사.. 더보기
쿠버네티스 레플리카셋(Replica Set) 쿠버네티스 레플리카셋(Replica Set) 쿠버네티스에서 레플리카셋(ReplicaSet)은 파드(Pod)의 복제본을 관리하는 리소스입니다. 레플리카셋은 지정된 수의 파드 복제본을 유지하도록 보장하며 파드가 비정상적으로 종료되었을 때 새로운 복제본을 생성하여 대체합니다. 레플리카셋의 중요한 특징 레플리카 수 유지 : 레플리카셋은 사용자가 지정한 수의 복제본을 유지합니다. 파드가 삭제되거나 종료된 경우 새로운 파드를 생성하여 복제본 수를 유지합니다. 라벨 셀렉터 사용 : 레플리카셋은 라벨 셀렉터를 사용하여 자신이 관리하는 파드를 식별합니다. 이를 통해 레플리카셋이 복제하는 파드를 선택할 수 있습니다. 스케일링 : 사용자는 필요에 따라 레플리카셋의 복제본 수를 조정하여 애플리케이션을 확장하거나 축소할 수 있.. 더보기
node-app 도커 이미지를 쿠버네티스로 배포하는 방법 node-app 도커 이미지를 쿠버네티스(Kubernetes)로 배포하는 방법 node-app-deployment.yaml 파일 생성 vim node-app-deployment.yaml # node-app-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: node-app # Deployment의 이름 spec: replicas: 1 # Replica 수 selector: matchLabels: app: node-app # Pod를 식별하기 위한 라벨 template: metadata: labels: app: node-app # Pod에 부여되는 라벨 name: node-app # Pod의 이름 spec: containers: - n.. 더보기
[kubernetes] kubectl get 명령 kubectl get 명령 kubectl get field selector kubectl get pods -o wide --field-selector status.phase=Running $ kubectl get pods -o wide --field-selector status.phase=Running NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES myapp-rs-dynamic-4gchk 1/1 Running 0 23m 10.233.118.66 kube-node3 myapp-rs-dynamic-7wqq4 1/1 Running 0 23m 10.233.73.68 kube-node1 myapp-rs-dynamic-bgmf5 1/1 .. 더보기
[kubernetes] 쿠버네티스 볼륨(Volume) - 동적 프로비저닝(dynamic Provisioning) / nfs 쿠버네티스 동적 프로비저닝(dynamic Provisioning) nfs dynamic provisioner 구성 https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner git clone https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner.git cd nfs-subdir-external-provisioner/deploy rbac 편집 $ cat rbac.yaml apiVersion: v1 kind: ServiceAccount metadata: name: nfs-client-provisioner # replace with namespace where provisioner is.. 더보기
[kubernetes] 쿠버네티스 볼륨(Volume) - 정적 프로비저닝(Static Provisioning) / nfs 쿠버네티스 정적 프로비저닝(Static Provisioning) nfs 서버 구성(kube-control1) - nfs 서버 구성 : https://sangchul.kr/432 nfs 클라이언트 구성(kube-node1, kube-node2, kube-node3) sudo apt install -y nfs-common showmount -e 192.168.56.11 $ showmount -e 192.168.56.11 Export list for 192.168.56.11: /nfs-directory/shares-data1 192.168.56.0/24 PV(Persistent Volume) 생성 nfs-pv1.yaml 파일 작성 vim nfs-pv1.yaml apiVersion: v1 kind: Persis.. 더보기
[kubernetes] 쿠버네티스 볼륨(Volume) - hostPath 볼륨 쿠버네티스 hostPath 볼륨 hostPath 볼륨 hostPath 볼륨 생성 hostPath1.yaml 파일 작성 apiVersion: apps/v1 kind: ReplicaSet metadata: name: myapp-rs-hostpath spec: replicas: 2 selector: matchLabels: app: myapp-rs-hostpath template: metadata: labels: app: myapp-rs-hostpath spec: containers: - name: web-server image: nginx:alpine volumeMounts: - name: web-content mountPath: /usr/share/nginx/html readOnly: true ports: .. 더보기