Kubernetes
-
[k8s docs] 쿠버네티스란 무엇인가?Kubernetes/Kubernetes docs 2023. 5. 2. 17:43
Overview - k8s는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼 - k8s는 크고, 빠르게 성장하는 생태계를 가지고 있음 - k8s는 어디서나 쉽게 사용 가능 ※ 컨테이너화된 워크로드: ※ 이식성, 확장성: Going back in time 전통적인 배포 시대: 물리서버에 애플리케이션을 구동하는 방식. 특정 애플리케이션이 리소스를 많이 잡아먹으면 다른 애플리케이션에도 성능을 저하시키는 단점. 서로 다른 물리서버에서 애플리케이션을 구동시키기에는 너무 많은 리소스를 필요로하여 많은 비용이 듦. 가상화된 배포 시대: 단일 물리서버에서 여러대의 vm을 구동하는 방식.(Hypervisor 기술을 통해 가상의 완전한 하나의 머신으로 동작) 가상화는 vm간에 애플..
-
CORS policy 에러Kubernetes/Trouble Shooting 2022. 10. 24. 12:43
오늘은 웹접속시 매우 많이 겪는 에러인 CORS 관해서 포스팅 해보려 합니다. Access to fetch at 'URL주소' from origin 'URL 주소' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. 위와 같은 에러를 개..
-
[k8s | node 추가] master node, worker node joinKubernetes 2021. 12. 13. 15:59
master node 혹은 worker node 를 추가하는 방법에 대해 알아 보겠습니다. 우선 해당 클러스터에 총 3개의 node가 존재하고 하나의 노드를 지운 후에 master node로 join하는 과정을 보여 드리겠습니다. "kubectl delete node hssm-master03" 명령어로 node를 제거해보겠습니다. 그리고 hssm-master03노드에서 "kubectl reset" 명령어를 진행하여 클러스터 리셋을 시켜줍니다. 해당 CRI옵션은 컨테이너런타임을 crio로 사용하였을때 추가해주는 옵션입니다. 마스터 노드로 join하기 위해 필요한 정보는 총 3가지입니다. token 값, hash 값, 마스터 노드 주소 Token 메인 마스터 노드로 이동하여 token 리스트부터 조회 해보겠..
-
[Kubernetes | Probe] Kubelet, LivenessProbe, ReadinessProbeKubernetes 2021. 12. 13. 15:46
Probe는 컨테이너에서 Kubelet에 의해 주기적으로 수행되는 진단. LivenessProbe 컨테이너가 동작 중인지 여부를 나타냄. 만약에 라이브니스프로브가 실패한다면, kubelet은 컨테이너를 죽이고 해당 컨테이너는 재시작 정책의 대상이 됨. 컨테이너의 헬스 체크를 하며 정상 동작할 때까지 재시작을 진행함. 만약 컨테이너가 라이브니스프로브를 제공하지 않는 경우, 기본 상태는 Success임. ReadinessProbe 컨테이너가 요청을 처리할 준비가 되었는지 여부를 나타냄. 만약 레디니스프로브가 실패하면, 엔드포인트 컨트롤러는 파드에 연관된 모든 서비스들의 엔드포인트에서 파드의 IP주소를 제거함. 레디니스프로브의 초기 지연 이전의 기본상태는 Success임. k8s 동작과정에 대한 추가 설명 m..
-
[Kubernetes | TroubleShooting] Failed to get imageFs info: non-existent label “crio-images”Kubernetes/Trouble Shooting 2021. 9. 17. 16:03
Kubernetes 사용 시에 해당 로그를 많이 보셨을 것 같습니다. 치명적인 로그가 아니라고 생각해서 항상 넘겼었는데.. 오늘은 제대로 어떤 원인 때문에 발생하는 에러인지 정리해보려 합니다~~ 우선 결론부터 말씀드리면 kubelet과 crio(컨테이너런타임)의 기동 순서에 따른 오류입니다. "crio 재기동 -> kubelet 재기동" 의 순서가 올바릅니다. 그래서 저와 같이 해당 로그가 뜨시는 분들은 kubelet을 한번 더 재기동 해서 기동 순서를 더 이후로 만들어주시면 될 것 같습니다. 각 시스템의 기동 시간은 "#systemctl status crio", "systemctl status kubelet"으로 검색할 수 있습니다. 재기동 명령어는 "#systemctl restart crio", "#..
-
[Kubernetes | Monitoring] Grafana 권한 관리Kubernetes/Monitoring 2021. 9. 13. 16:41
오늘은 Grafana의 권한 세팅에 대해서 포스팅 해보겠습니다. 우선 Grafana는 기본적으로 admin 이라는 admin 계정을 가지고 있습니다. 해당 admin 계정을 통해 각 계정들의 권한을 세팅할 수도 있고, 대시보드 또한 생성할 수 있습니다. user를 추가하기 위해 admin 계정으로 로그인 해주시면 됩니다. Server Admin 메뉴의 Users 탭을 선택한 후 New user를 클릭해주세요. 해당 값들을 입력한 후 Create 버튼을 누르면, users 생성이 완료된 것을 보실 수 있습니다. 이번에는 생성된 user의 권한 부여하는 법에 대해 알려 드리겠습니다. 마찬가지로 admin계정으로 로그인하여 Server Admin > Users > 해당 계정 클릭 하시면 각 계정들에 대한 세팅..
-
[Kubernetes | Volume] Kubernetes Volume 개념 정리 01Kubernetes/Volume 2021. 5. 20. 17:08
더보기 저는 평소에 쿠버네티스를 사용하면서 Volume 부분에 대한 개념들이 헷갈렸었는데 조금씩 정리해보려 합니다. 우선 컨테이너는 특성상 지워지면 데이터도 함께 사라지는 일시적인 특성을 가지고 있습니다. 즉 데이터를 영구적으로 저장하고 싶다면 Volume이라는 리소스를 사용 해야하고, Volume에는 여러가지 종류가 있습니다. 오늘은 emptyDir과 hostPath에 대해 정리해보겠습니다. emptyDir 개념 emptyDir은 Pod가 사라지면 볼륨도 함께 사라지는 임시 볼륨의 성격을 가지고 있음. Pod가 실행되는 노드의 디스크의 공간에 마운트.(즉 파드가 삭제되면, 볼륨도 사용 불가) 파드 내에 모든 컨테이너는 emptyDir 볼륨에서 동일한 파일을 읽고 쓸 수 있음. 실습 1. 해당 yaml을..
-
[Kubernetes | Monitoring] Prometheus 01Kubernetes/Monitoring 2021. 5. 17. 15:01
모니터링 모듈 중 하나인 Prometheus에 관해 정리하는 시간을 가져 보겠습니다. 프로메테우스의 사전적 정의는 검색하면 많이 나오는거 아시죠~? 저는 좀 더 직관적인 개념을 정리해보겠습니다! 프로메테우스의 데이터는 어떤 원리로 쌓이는가? node-exporter 프로메테우스는 어떤 방식으로 데이터를 수집해오는지 알아보겠습니다. 우선 프로메테우스 설치를 마치고 나면 다음과 같이 node-exporter라는 pod들이 각 노드에 뜨게 됩니다. node-exporter는 Metric 데이터를 수집할 수 있게 해줍니다.(node-exporter는 daemonset형태이기 때문에 모든 노드에 뜹니다!) checkpoint prometheus 파드내에 접속하여 /prometheus/wal 디렉토리 내에 chec..