k8s
Kubernetes Component
Kubernetes Component 쿠버네티스 클러스터는 컨테이너화된 애플리케이션을 실행하는 노드라고 하는 워커 머신의 집합입니다. 이런 클러스터는 최소 한 개의 worker node 가 존재하고, 그 worker node는 애플리케이션의 구성요소인 pod를 호스트 합니다. control plan은 worker node 와 클러스터 내부의 pod를 관리합니다. 흔히 control plan을 master node라고 부릅니다. master node는 단일 또는 멀티 노드로 구동이 가능하지만 프로덕션 환경에서는 한대가 고장 나도 시스템의 중단 없이 계속 작동할 수 있도록 여러 대의 master node를 두고 운영합니다. 이때, master node의 개수는 정족수를 성립하기 위해서 홀수로 구성해야 합니다..
[EKS] ingress-nginx helm chart 에 AWS ACM 등록
개요 https://kubernetes.github.io/ingress-nginx/deploy/#aws 공식문서에서 deploy.yaml 을 다운받아서 acm 설정한 다음 kubectl apply -f deploy.yaml을 했을 때는 https 접속이 정상적으로 됐음 https://github.com/kubernetes/ingress-nginx 그런데 helm chart 로 설치를 했더니 "The plain HTTP request was sent to HTTPS port" 에러가 뜨면서 https 접속이 안됨 해결 방법 helm chart info repo: ingress-nginx repo url: https://kubernetes.github.io/ingress-nginx chart: ingress..
Argocd를 사용하여 helm chart 배포 및 주의사항
1. helm repo 사용 Application CRD # applications.yaml apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: tomcat namespace: argocd finalizers: - resources-finalizer.argocd.argoproj.io spec: project: apps source: repoURL: https://charts.bitnami.com/bitnami chart: tomcat targetRevision: "10.1.21" destination: namespace: tomcat server: "https://kubernetes.default.svc" syncPolicy: autom..
argoCD App of Apps 패턴을 사용한 서비스 배포
개요 GitOps로 app 을 일괄적으로 관리하고 new app 이 추가되어도 구조가 바뀌지 않도록 하기 위한 방법을 생각해봤습니다. 그래서 하나의 폴더에 child application 을 생성하도록 하는 App of Apps 패턴을 사용하게 되었습니다. 이를 사용하면 배포 및 구성할 수 있는 apps 들을 선언적으로 관리 할 수 있습니다. https://argo-cd.readthedocs.io/en/stable/operator-manual/cluster-bootstrapping/ 디렉터리(GitOps) 구조 ├── application.yaml ├── apps │ ├── app-apache.yaml │ ├── app-kustomize-guestbook.yaml │ └── app-helm-nginx.y..
[EKS] AWS EBS 볼륨을 K8S PV로 사용
Pod 간 공유 가능한 스토리지를 만들어야 했습니다. 그러던 중 PV, PVC 라는 k8s 개념이 있어서 공부한 것을 정리해 보겠습니다. 물리 스토리지를 쿠버네티스 클러스터에 표현한 것이 PV이고, Pod의 볼륨과 PV를 연결하는 관계가 PVC 입니다. EKS 1.23버전 이후부터는 AWS EBS CSI Driver(https://github.com/kubernetes-sigs/aws-ebs-csi-driver)를 설치 하지 않으면 EBS를 PV로 사용할 수 없습니다. 참고: https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/kubernetes-versions.html#kubernetes-1.23 Provisioning PV를 프로비저닝 할 수 있는 방법에..
[docker] Failed to get D-Bus connection 에러 해결
이미지 centos:7를 사용하려고 했더니 systemctl을 사용할 수가 없다 ;; ubuntu에서는 잘 됐던거 같은데 centos은 안되는게 왜케 많은지 모르겠다 [user01@master ~]$ docker run -it centos:7 bash [root@9fa1db10b89c /]# systemctl Failed to get D-Bus connection: Operation not permitted 1. 컨테이너 해결방법 --privileged 옵션과 -d 옵션으로 /sbin/init을 실행한후 exec로 /bin/bash를 실행시켜야 한다 $ docker run --privileged -d --name mycentos centos:7 /sbin/init $ docker exec -it myce..