
쿠버네티스에서 민감한 데이터는 시크릿을 통해 관리됩니다. 생성된 시크릿은 mount fs 또는 env var 을 통해서 파드에 시크릿 데이터를 넘겨줄 수 있죠. 시크릿을 생성한 후, kubectl create secret generic secret1 --from-literal user=admin kubectl create secret generic secret2 --from-literal user=12345678 아래와 같이 yaml 을 작성해서 사용할 수 있죠. apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: pod name: pod spec: containers: - image: nginx name: pod resourc..

퍼블릭 클라우드 환경에서 쿠버네티스를 운영할 때 온프로미스보다 편한 점 중 하나가 바로 볼륨 관리 라고 생각합니다. EBS CSI Driver 를 설치 후 Storage Class, PV 그리고 PVC 를 통해 쉽게 AWS EBS 를 통해 볼륨을 언제 어디서든 가져다 쓸 수 있죠. 한편, 쿠버네티스에선 다양한 방법으로 볼륨을 사용할 수 있는데요. 컨테이너간 공유를 가능케 해주는 EmptyDir, 노드의 볼륨을 통해 파드간 공유를 가능케 해주는 HostPath, NFS 서버를 사용하는 NFS 기능 등이 있습니다. 그라파나를 노드에 배포할 때, 그라파나의 설정 파일은 그라파나가 배포된 노드의 볼륨에 저장이 됩니다. 따라서 만약 그라파나 파드가 다른 노드에 배포가 될 경우 이전에 가지고 있던 그라파나 설정을 ..

설명은 필요없고 결론만 알고 싶은 분들을 위한 $ sed "$(grep -n 'image:' nginx.yaml | grep -Eo '^[^:]+')s/nginx:1.0/nginx:2.0/g" nginx.yaml 본문의 기능이 필요한 상황 예시 위 이미지는 개발자가 코드를 커밋한 후 자동으로 k8s cluster에 배포되기 까지의 과정을 파이프라인으로 도식화한 이미지입니다. 개발자가 운영 중인 서비스에 새로운 기능을 추가하거나 버그를 수정 했다고 가정해봅시다. 그렇게 될 경우 GitOpsRepo의 있는 컨테이너 이미지의 버전 또한 바꿔주어야 합니다. 그렇게 될 경우 젠킨스에서 GitOps Repo에 push를 할 때 새롭게 만든 컨테이너 이미지의 버전으로 수정해줘야 합니다. 그래야 argoCD에서 git..