지니데비 기록 자세히보기
반응형

쿠버네티스 35

[helm] helm 사용법

1. helm이란 무엇인가?helm이란 쿠버네티스 패키지 관리자이다. helm을 통해 쿠버네티스 클러스터에 어플리케이션을 쉽게 배포하고 관리할 수 있다. 리눅스의 yum, apt, dnf 같은 것이라고 생각하면 된다. 2. helm 주요 요소Chart: 패키지 단위이다. 하나의 Chart에는 쿠버네티스에 앱을 배포하는 데 필요한 모든 설정 파일이 포함돼 있다.(deployment, service, configmap, PVC 등)Release: Chart를 이용하여 쿠버네티스 클러스터에 앱을 처음 배포하면 Release는 1이고, upgrade 시 1씩 오른다. 각각의 독립적인 Release로 관리되고 이전 버전으로 롤백할 수 있다.Repository: Chart를 저장하는 저장소이다. 3. helm을 왜..

[Kubernetes] 34. Software Version, Cluster Upgrade

v1.11.3v[major].[minor].[patch] alpha version:beta versionmajor version: minor version: feature, functionalitiespatch version: bug fixes   cat /etc/*release*# 마스터노드 업그레이드vi /etc/apt/sources.list.d/kubernetes.listsudo apt updatesudo apt-cache madison kubeadmsudo apt-mark unhold kubeadm && \sudo apt-get update && sudo apt-get install -y kubeadm='1.31.0-1.1' && \sudo apt-mark hold kubeadmkubeadm ve..

[Kubernetes] 33. OS Upgrades

※ 주의사항: 쿠버네티스 버전 업그레이드 시 버전은 꼭 1씩 올려야 한다. 예를 들어, V1.30.8에서 V1.32.0으로 올려야 한다면 V1.30.8 → V1.31.4 → V1.32.0의 순서로 각 노드 하나씩 업그레이드 작업을 해야한다.# master nodeyum list --showduplicates kubeadm --disableexcludes=kubernetesyum install -y kubeadm-1.32.0-150500.1.1 --disableexcludes=kuberneteskubeadm versionkubeadm upgrade plankubeadm upgrade apply v1.32.0kubectl drain [노드명] --ignore-daemonsets# replicaset, job..

[Kubernetes] 31. InitContainers

Init Container는 메인 컨테이너를 실행하기 전에 먼저 실행되는 컨테이너로, 실행 전 사전작업(설정, 데이터 다운로드, 실행환경 준비 등)을 수행한다. Init Container를 Multi로 구성할 경우, 파일에 정의된 순서대로 실행된다. 모든 컨테이너가 실행 성공할 때까지 다시 실행되며, 초기화 작업이 모두 성공하면 Init Container는 종료되고 메인 컨테이너를 실행한다.Init Container 예시apiVersion: v1kind: Podmetadata: name: myapp-pod labels: app: myappspec: containers: - name: myapp-container image: busybox:1.28 command: ['sh', '-c..

[Kubernetes] 30. Multi-Container

서로 의존하며 Lifecycle이 동일한 컨테이너를 동일한 Pod에 배치하는 것을 Multi-Container라고 한다.Multi-Container 구성 및 로그 확인# Multi-Container 구성apiVersion: v1kind: Podmetadata: name: simple-webapp labels: name: simple-webappspec: containers: - name: simple-webapp image: simple-webapp ports: - containerPort: 8080 - name: log-agent image: log-agent# Pod 접속 후 로그 보기kubectl exec -it [pod name] -c [container n..

[Kubernetes] 29. Encrypt Secret

쿠버네티스 Secret을 암호화하기 위해 etcd를 이용하여 암호화한다. EncryptionConfiguration라는 오브젝트를 생성한다.Secret 암호화 방법# etcd 설치 및 설정yum install epel-releaseyum install etcd# etcdctl을 사용한 데이터 확인ETCDCTL_API=3 etcdctl \ --cacert=/etc/kubernetes/pki/etcd/ca.crt \ --cert=/etc/kubernetes/pki/etcd/server.crt \ --key=/etc/kubernetes/pki/etcd/server.key \ get /registry/secrets/default/secret1 | hexdump -C# kube-apiserve..

[Kubernetes] 28. Secret

쿠버네티스의 Secret은 암호, 토큰, 키 같은 민감한 데이터를 관리하는 컴포넌트이다. key-value로 저장되는 것이 ConfigMap과 유사하지만, value값이 base64 인코딩되어 저장되는 점은 다르다. (암호화 X)Secret 생성# 명령어로 생성kubectl create secret generic [secret name] --from-literal=[key]=[value]kubectl create secret generic [secret name] --from-file=[file path]kubectl create secret generic \ app-secret --from-literal=DB_Host=mysql --from-literal=DB_User=r..

[Kubernetes] CKA 취득 성공

시험 복기하면서 틀린 부분이 디테일하게 계속 생각나서 불합격할까봐 걱정했지만.. 84점으로 합격했다. 할 수 있는 데까지 하면 부분점수를 주는 것 같다.헷갈렸던 부분은...networkpolicy 만들 때 namespace로 ingress를 설정하되 namespace A에서는 되지만 namespace B에서는 안되게 설정하는 부분etcd복구할 때 datadir 옵션 안 주면 자동으로 /default.etcd 경로에 연결이 된다고 한다. etcd yaml volume 수정해줄 것! 그냥 명시해서 옵션 지정해 주는 것이 좋다.kubelet permanently 활성화 할 땐 systemctl enable --now kubelet이다. restart 아니다.참고로...리눅스 UI 서버가 익숙지 않아서 파이어폭..

[Kubernetes] 27. ConfigMap

ConfigMap과 Secret은 환경설정 데이터를 관리하기 위한 리소스이다. 애플리케이션에서 환경변수나 설정파일처럼 사용할 수 있는 키-값 쌍을 저장한다. 컨테이너 이미지와 설정 데이터가 분리되어 있어 배포 시 유연성을 높여준다.ConfigMap 생성# 리터럴 데이터로 생성kubectl create configmap [config name] --from-literal=[key]=[value]kubectl create configmap app-config --from-literal=APP_COLOR=blue --from-literal=APP_MODE=prod# 파일로 생성kubectl create configmap [config name] --from-file=[file path]kubectl creat..

반응형