공부/Kubernetes
[kubernetes] cordon, uncordon, drain, taint
명령어 사용 이유 클러스터를 사용하다보면 특정 노드에 있는 pod 를 다른 곳으로 옮기거나 특정 node 에는 pod 가 스케쥴링 되지 않게 제한을 둘 필요가 있다. 이 명령어들은 worker노드의 OS나 kubelet 버전 업데이트에 사용한다. cordon : 지정된 node에서 더이상 pod들이 scheduling되서 실행되지 않도록 한다. 현재 노드에 배포된 Pod는 그대로 유지하면서 추가적인 Pod의 배포를 제한하는 명령어이다. kubectl cordon uncordon : pod가 node에 정상적으로 scheduling 시키는 명령어이다. kubectl drain, kubectl cordon 명령어를 적용한 노드의 Pod는 스케쥴링이 되지 않는데, uncordon은 노드에 Pod가 정상적으르 ..
[k8s] CKA 준비 - Network Policy
Network Policy란 kubernetes에서 사용하는 방화벽 정책 pod 가 서로 통신할 때 인바운드, 아웃바운드에 대한 설정을 할 수 있도록 하는 정책 apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: test-network-policy namespace: default spec: podSelector: matchLabels: role: db policyTypes: - Ingress - Egress ingress: - from: - ipBlock: cidr: 172.17.0.0/16 except: - 172.17.1.0/24 - namespaceSelector: matchLabels: project: myproject - ..
[DKT CKA Study] 8Day - 2023.05.30
문제 풀이에 대한 공부 전략 문제 유형 정리 -> 문제 푸는 방법 help / docs 중에 어떤걸 사용해야하는지 --no-headers 워드 카운트 개수 할때 헤더 개수는 포함 안시킬 수 있게 no-headers 작성 replicas 수정 replicas 수정은 deployment 에서 진행 ETCD yaml 파일 위치 cat /etc/kubernetes/manifest/etcd.yaml taint drain cordon 차이 json path 에 대해 : kubectl jq 시험에서 test pod 생성 시 test pod 를 생성해야하는 상황이 생기는데 kubectl run test —image=nginx -> 하면 크러쉬남 시험에서 테스트 파드 만들때 kubectl run test —image=n..
[kubernetes] kube-proxy란
kube-proxy란 쿠버네티스에서 네트워크 동작을 관리하는 컴포넌트이다. 네트워크 프록시는 각 노드에서 실행된다. Worker Node에 DaemonSet의 형태로 배포되어 있어 서로 다른 Worker Node의 Pod 간의 통신이 가능하도록 해준다. 새로운 Cluster IP가 생성되거나 Pod 가 추가될 때, 자신이 동작하고 있는 Node의 iptables에 룰을 추가해준다. Node Port 와 같은 Service를 통해 외부에 포트를 노출시켜야 할 때, 그 포트를 listen 역할하는 담당이다. kube-proxy 옵션 참고 https://kubernetes.io/ko/docs/reference/command-line-tools-reference/kube-proxy/
[DKT CKA Study] 5Day - 2023.05.10
따배쿠 진행방법 커리큘럼대로 진행하기 문제 유형, 컨닝페이퍼, 도큐먼트 잘 보는 방법 실문제 풀고 공유하기 및 서로의 연결성 파악하기 북마크 공유 (시험에서는 사용 불가) 각자 문제 풀고 공유하기 트러블 슈팅했을 때 누가 잘했는지 공유하면 좋을 듯 문제보고 쿠버네티스 문서 찾기/검색 잘하는 방법에 대해 공유하면 좋을 듯 함 (참고) aws devops 자격증 취득할 때 aws document 활용 많이 했음 그 외 시험도 시험이지만 로그분석, 모니터링의 스킬도 가져가면 좋을듯 함 AWS Summit 2023 보고 공유한 내용 1. 프로젝트의 방향성 : be kind, 서로 윈윈하는 방향 2. Amazon CodeWhisperer : ML 기반 코드 도우미 리눅스 환경에서 프로세스 종료하기 kill -15..
Kubernetes Service 포트 - NodePort, port, targetPort
Servie-port 서비스 포트로 요청받은 것을 파드의 어느 포트로 포워딩할 지 설정하는 것이다. 클러스터 외부에서 노드의 IP 주소와 서비스의 nodePort 로 요청이 되면 서비스의 port 로 포워딩되고 파드에서 targetPort로 들어간다. apiVersion: v1 kind: Service metadata: name: dev-svc spec: type: NodePort ## type 추가 ports: - port: 80 protocol: TCP targetPort: 8080 nodePort: 31000 ## nodePort 입력 selector: app: dev-pod NodePort - 외부에서 접속하기 위해 사용하는 포트 해당 포트 번호를 통해 외부에서 접근한다. port - Cluste..
Mac OS brew uninstall 오류/ Mac OS 패키지 삭제 - Error: No such keg: /opt/homebrew/Cellar/redis
Homebrew 로 설치한 파일을 삭제하려고 한다. 먼저 설치되어 있는 목록을 확인한다. brew list 삭제하고자 하는 패키지를 선택후 삭제한다. brew uninstall 패키지이름 나는 삭제할 수 없다고 한다..! 적혀있는 파일들을 삭제하고 다시 시도해보았다. brew uninstall redis 다음과 같은 에러가 나면서 삭제되지 않았다. Error: No such keg: /opt/homebrew/Cellar/redis 그래서 강제로 삭제 했다. brew uninstall --force redis
[Helm] helm 으로 Grafana, Redis 설치하고 Grafana에 Redis 연결하기
Helm 설치하기 helm 설치는 여기를 참고한다. Redis 설치하기 redis는 Helm repository를 통해서 설치하고자 한다. ArtifactHUB에 접속해서 redis 를 검색해 사용하고자 하는 차트를 선택하거나 아래 링크로 접속한다. https://artifacthub.io/packages/helm/bitnami/redis Redis Chart 설치하기 repo 를 추가안하면 설치가 안된다. 공식 문서 내용 그대로 my-release 이름으로 설치해주었다. 이름은 편한대로 설정한다. ## repo 추가 안하면 설치 안됨 helm repo add my-repo https://charts.bitnami.com/bitnami ## redis 설치하기 helm install my-release ..
[Helm] Mac에 Helm 설치하기
Helm 이란 deployment, service, ingress 등 yaml 파일을 하나의 패키지로 관리하기 위해 사용하는 도구로 yaml 내용이 변하면 한번에 처리가 가능해서 간편하다. Helm 설치하기 $ brew install helm Helm 설치 참고 사이트 https://helm.sh/docs/intro/install/ Installing Helm Learn how to install and get running with Helm. helm.sh Helm Chart Repository 초기화 $ helm repo add stable bitnami https://charts.helm.sh/stable Helm Repository 헬름이 준비되면 차트 리포지토리를 추가할 수 있다. 다운 가능한 ..
[k8s] 쿠버네티스 Job, CronJob
Job 1회성 작업에 사용됨 - DB 마이그레이션과 같이 한번의 작업으로 처리가 끝나는 것 - 어플리케이션 오류나 예외로 실패했을 때는 성공할때까지 Job 컨트롤러가 파드를 다시 만든다 - 파일을 수정하고자 하면 삭제 후 다시 apply 해야한다. - job 하나가 여러개의 Pod를 실행하게 할 수 있다. Cron Job 주기적인 배치 작업을 실행할 때 사용됨 - 저장소 백업, 메일 송신 등과 같은 처리에 사용됨 - 리눅스, 유닉스의 Cron 과 비슷함 - Job의 실행 스케줄링을 설정할 수 있음 job 예제코드 apiVersion: batch/v1 kind: Job metadata: name: job.yaml spec: ## 1회성 작업 template: spec: containers: - name: ..