k8s에 nginx ingress 를 등록하고, ingress 를 등록하면 등록한 서비스의 접근을 확인하기 위해서 webhook 이 실행됩니다. nginx-ingress 차트를 등록하면 자동으로 등록되기 때문에 다른 Helm 차트를 등록하면 자동으로 실행되고, 서비스 등록을 체크 합니다.이 체크 URL을 로컬의 /etc/hosts 에 등록하여 연결을 확인할 수도 있고, 해당 webhook을 삭제 하여도 됩니다. kubectl delete validatingwebhookconfiguration ingress-nginx-admission
오픈 렌즈에서는 ssh 키 없이 노드에 접근할 수 있습니다 이는 nsenter 명령어를 이용하여 키 없이 노드에 접근할 수 있습니다. https://github.com/lensapp/lens/blob/5670312c474eb5b6d506a3793863707a7df76775/src/main/node-shell-session.ts#L57-L87 GitHub - lensapp/lens: Lens - The way the world runs Kubernetes Lens - The way the world runs Kubernetes. Contribute to lensapp/lens development by creating an account on GitHub. github.com 소스코드는 이곳에서 확인할 수..
pv 설정시 발생하는 다음 오류는 노드 셀렉터에 설정된 노드의 이름과 노드가 매치되지 않을 때 발새합니다. nodeSelectorTerms 에 설정된 노드 명과 현재 조회되는 노드가 일치 하는지 확인 노드 명이 맞다면 현재 사용중인 kubeconfig 가 배포하고자 하는 클러스터 인지 확인
k8s에서 pv 를 설정할 때 다음과 같은 오류가 발생하는 경우가 있습니다. 이 경우 저는 다음의 순서로 확인하여 오류를 해결 할 수 있었습니다. pv 오류 pv에 설정된 노드가 오류가 있는 경우 존재하지 않는 노드에 pv 를 설정한 경우 입니다. nodeSelectorTerms의 설정을 확인하면 됩니다. 설정된 디렉토리가 없는 경우 pv의 local.path 에 설정된 디렉토리 경로가 없거나, 권한이 없을 경우 입니다. 디렉토리가 존재하는지 확인합니다. pvc 오류 pv 와 pvc 가 연결이 되지 않는 경우 pv와 pvc가 연결되지 않는 경우입니다. 이름과 스토리지 클래스를 다시 확인합니다. 스토리지 클래스가 다른 경우 차트에 설정된 스토리지 클래스의 pv 가 존재하지 않는 경우 입니다. 스토리지 클래..
k8s 서버의 노드 상태가 NotReady 가 되어서 원인을 확인해 보니 kubelet 에서 오류가 발생하고 있었습니다. k8s 서버에서 다음과 같은 오류가 발생하면 k8s 서버가 사용하는 인증서를 갱신해 주어야 합니다. Failed to contact API server when waiting for CSINode publishing: Get https://1.1.1.1:6443/apis/storage.k8s.io/v1/csinodes/k8s-server: x509: certificate has expired or is not yet valid 인증서의 위치는 /etc/kubernetes/pki 입니다. 이 위치에 있는 인증서를 최신버전으로 변경해 주면 됩니다. - 인증서 위치: /etc/kuberne..
argocd 에 클러스터를 추가할 때 다음과 같은 오류가 발생하면서 클러스터가 추가 되지 않는 오류가 발생하는 경우가 있습니다. 이때는 추가하고자 하는 클러스터의 이름을 설정하고, 추가 여부를 묻는 질문에 y를 입력하면 클러스터를 추가할 수 있습니다. $ argocd cluster add --kubeconfig kubeconfig.yaml ERRO[0000] Choose a context name from: CURRENT NAME CLUSTER SERVER * k8s-server@admin k8s https://k8s-server:6443 # 클러스터 추가 명령: 명령 실행 후 [y/n] 여부를 물어 오면 y 입력이 필요 함 $ argocd cluster add --kubeconfig kubeconfig..
k8s에서 노드의 상태가 이상할 때 노드의 파드를 제거하는 drain 명령을 이용하면 노드가 SchedulingDisabled 상태로 변경됩니다. 이 후 노드의 상태를 다시 복원하고 싶을 때는 uncordon 을 이용합니다. # 이상한 상태의 노드 제거 $ kubectl drain [노드명] # 노드 상태 확인 $ kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master-1 Ready control-plane,master 189d v1.21.11 k8s-master-2 Ready control-plane,master 189d v1.21.11 k8s-master-3 Ready control-plane,master 189d v1.21.11 k8s-worker-..
k8s에서 harbor와 연결할 때 사용자 인증이 필요합니다. harbor의 사용자 인증을 k8s의 secret에 추가하고, k8s의 yaml 정보에 imagePullSecret 정보로 추가해야 합니다. 먼저 harbor의 CLI secret을 확인합니다. CLI secret은 시간에 따라 변경되기 때문에 시간이 지나면 새로 받아야 합니다. 이 정보를 이용해서 k8s의 secret을 생성합니다. docker-password에 cli_secret 정보를 추가해야 합니다. kubectl create secret docker-registry k8s-private-registry \ --docker-server=harbor.io \ --docker-username=user_name \ --docker-passw..
k8s는 암호 같은 중요 정보를 보관하는 데이터베이스 같은 기능인 시크릿을 제공합니다. 시크릿은 CLI를 이용해서 생성하거나, yaml 을 이용하여 생성할 수 있습니다. https://kubernetes.io/ko/docs/concepts/configuration/secret/ 시크릿(Secret) 시크릿은 암호, 토큰 또는 키와 같은 소량의 중요한 데이터를 포함하는 오브젝트이다. 이를 사용하지 않으면 중요한 정보가 파드 명세나 컨테이너 이미지에 포함될 수 있다. 시크릿을 사용한다 kubernetes.io 시크릿 생성 CLI 시크릿 생성 yaml 시크릿 사용 secretKeyRef를 이용하여 yaml 에서 이용할 수 있음
- Total
- Today
- Yesterday
- 파이썬
- SQL
- AWS
- bash
- 하이브
- error
- Hadoop
- oozie
- ubuntu
- Linux
- SPARK
- yarn
- nodejs
- java
- Python
- 오류
- build
- S3
- HDFS
- hbase
- emr
- 알고리즘
- airflow
- 하둡
- 정올
- mysql
- 백준
- HIVE
- Tez
- 다이나믹
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |