본문 바로가기

Cloud/Kubernetes

Kubernetes Prometheus PVC 붙이기 기본적으로 제공되는 yaml에는 PVC가 붙어있지 않다. ephemeral data 이기 때문에 불의의 사고로 Pod가 죽거나 삭제되었을 때 데이터가 날아간다. 이 때를 대비해 PVC를 붙여주는 것이 좋다. root@c1:~# kubectl get prometheus -A NAMESPACE NAME AGE monitoring k8s 6d23h prometheus를 조회한 이후 수정해준다. 다양한 방법이 있지만 난 아래 방법을 통해 PVC를 생성해준다. kubectl edit prometheus -n monitoring k8s serviceAccountName: prometheus-k8s serviceMonitorNamespaceSelector: {} serviceMonitorSelector: {} sto..
Kubernetes custom-columns 사용해보기 Kubernetes Docs - kubernetes.io/ko/docs/reference/kubectl/overview/#custom-columns kubectl 개요 Kubectl은 쿠버네티스 클러스터를 제어하기 위한 커맨드 라인 도구이다. 구성을 위해, kubectl 은 config 파일을 $HOME/.kube 에서 찾는다. KUBECONFIG 환경 변수를 설정하거나 --kubeconfig 플래그를 설정하여 �� kubernetes.io kubectl command를 통해 필요한 정보를 출력할 수 있지만 한정적인 정보밖에 받지 못한다. 가장 많이 사용하는 get pod 명령어는 다음과 같이 출력된다. root@c2:~# kubectl get pods -n rook-ceph NAME READY STAT..
NodePort 통신할 때 TCP-DUMP 분석 1. 진입점이 Pod가 위치하지 않은 Node일 때 (1) Pod가 위치하지 않은 Node 이 때에는 tunl0를 거쳐간다. [root@s1 ~]# tcpdump -i tunl0 -nn | grep 10.244.111.5 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on tunl0, link-type RAW (Raw IP), capture size 262144 bytes 18:44:25.127713 IP 10.244.210.64.58491 > 10.244.111.5.80: Flags [P.], seq 1295099361:1295100093, ack 742718106, win 16526, length..
까먹기전에 하는 단어 정리 1. CRI-O(Open Container Initiative) 빨간모자가 개발한 Kubernetes용 Container Runtime이다. Docker를 대체하기 위해 만들어졌으며 K8S 안에서의 구조는 아래 그림과 같다. 2. KubeDNS -> CoreDNS KubeDNS가 CoreDNS로 대체되었으며 K8S Object간 DNS를 위해 서비스되는 요소이다. 자세한 내용은 본진 블로그에 포스팅하였다. 3. 사이드카 컨테이너 컨테이너 플러그인이라고 생각하면 될 것 같다. OOP를 위한 느낌도 드는데 서비스를 위한 기본 컨테이너 이외에 다른 용도를 위해 컨테이너를 붙이는 행위를 말한다. 4. Overay Network 가상 네트워크. 5. Metal LB (L2, L3) Metal LB는 Layer 2..
kubernetes resource가 terminating 상태에서 변하지 않을 때 1. kubectl edit resource 를 통해 삭제 apiVersion: v1 kind: Namespace metadata: annotations: cni.projectcalico.org/ipv4pools: '["default-ipv4-ippool"]' kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"v1","kind":"Namespace","metadata":{"annotations":{},"labels":{"cdi.kubevirt.io":""},"name":"cdi"}} creationTimestamp: "2020-05-19T10:11:37Z" labels: cdi.kubevirt.io: "" name: cdi resour..
Kubernetes 특정 네임 스페이스의 전체 리소스 조회 kubectl get all을 통해 조회할 수 있지만, 특정 몇 개의 리소스만 조회 된다. - Kubectl get all -n cdi root@c1:~# kubectl get all -n cdi NAME READY STATUS RESTARTS AGE pod/cdi-apiserver-5766fc84f7-dwgjw 1/1 Running 1 6d22h pod/cdi-deployment-555f466b8-4ts68 1/1 Running 230 7d pod/cdi-operator-7d8b795cc5-v9dfd 1/1 Running 2 47h pod/cdi-uploadproxy-74ddfb494f-z75px 1/1 Running 1 7d NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) A..
Kubernetes 노드 추가 방법 1. 토큰 리스트를 확인한 이후 토큰이 없으면 새로 생성해준다. root@v1-1:~# kubeadm token list TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS root@v1-1:~# kubeadm token create 5rcdbn.z7soxtlro0g8d8x2 root@v1-1:~# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //' 65ad8d9d9aec097d0d0d6833de19620c4a351c3d2884440046ce79b4dc6fff6d 2..