kubernetes 90

기존 리소스가 있는 상태에서 helm release하면?

주제 기존 쿠버네티스 리소스가 있는 상태에서 똑같은 이름(.metatdata.name)으로 helm release를 하면 에러가 발생합니다. 에러 메세지는 아래와 같습니다. 왜 이 에러가 발생할까요? 예제코드: https://github.com/sungwook-practice/helm-release-error-case helm install helm-test ./charts 에러 메세지 키워드 exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; a..

calico-kube-controllers pod pending오류 해결

오류 쿠버네티스 클러스터를 처음 설치하고 calico CNI를 설치한 과정에서, calico-kube-controllers pod가 pending상태로 있었습니다. kubectl describe pod로 확인하면 untolerated taint 메세지가 있었습니다. 원인 쿠버네티스 클러스터 설치 순서를 잘못해서 오류가 발생했습니다. 아래 순서대로 실행했어야 했는데, 1 -> 3 -> 2로 실행해서 오류가 발생했습니다. 1. kubeadm init 2. CNI 설치 3. worker node join 쿠버네티스 control plane node에는 pod가 스케쥴링 되지 않도록 taint가 설정되어 있습니다. 하지만, calico-kube-controllers pod는 contrl plane node에 설..

Argocd kustomize --enable-helm 옵션 활성화

문제 Argocd에서 kustomize로 helm을 사용할 경우 에러가 발생합니다. default설정으로 kustomize --enable-helm이 설정되어 있지 않기 때문입니다. 해결 참고자료: https://argo-cd.readthedocs.io/en/stable/user-guide/kustomize/#kustomizing-helm-charts kubernetes configmap에서 argocd-cm에서 kustomize옵션에 --enable-helm을 추가합니다. helm으로 Arogcd를 설치한 경우, values.yaml을 오버라이딩하면 됩니다. configs: cm: kustomize.buildOptions: --enable-helm

Metallb를 사용하는 환경에서 jenkins와 harbor 구성

개요 jenkins pod에서 도커이미지를 harbor에 업로드해야 합니다. harbor는 도메인으로 관리합니다. 구성 1. ingress controller를 loadbalancer타입으로 설정합니다. 2. harbor는 ingress로 도메인을 노출합니다. harbor도메인은 harbor.example.com입니다. 3. jenkins pod에서 hostalias를 사용하여 harbor도메인을 ingress controller loadbalancer IP로 할당합니다. harboar.example.com 4. jenkins pod에서 docker push합니다. docker push harbor.example.com/alpine:latset

쿠버네티스 coredns에서 cname설정

쿠버네티스 pod에서 cname을 설정하고 싶다면 coredns configmap을 설정하면 됩니다. 아래 예제는 pod안에서 example.com을 요청하면 example.default.svc.cluster.local서비스 도메인을 리턴합니다. 참고자료: https://support.huaweicloud.com/intl/en-us/usermanual-cce/cce_01_0361.html $ kubectl edit configmap coredns -n kube-system apiVersion: v1 data: Corefile: |- .:5353 { bind {$POD_IP} ... rewrite name example.com example.default.svc.cluster.local ... }

쿠버네티스 pod생성 과정 디버깅

영상: https://youtu.be/ijdO1NwB2cQ 시작하며 쿠버네티스 pod가 어떻게 생성되는지 궁금해서 로그를 분석했습니다. 그리고 쿠버네티스 공식문서를 읽고 컨셉에 대해 이해하려고 했습니다. 선수지식 이 글을 이해하기 위해 쿠버네티스 component들이 무엇이 있는지 알아야 합니다. pod를 생성하기 위해 많은 쿠버네티스 component들이 생성과정에 참여하기 때문입니다. 링크: https://kubernetes.io/docs/concepts/overview/components/ 공식문서에 소개된 것처럼 component는 control-plane과 worker로 분류됩니다. control-plane component는 kube-system namespace에 실행됩니다. control-..