k8s27 [cdk8s] Define k8s yaml file in programming language cdk8s - A framework that allows defining/creating yaml files that define k8s resources in programming languages such as python, typescript, and java.(official site - https://cdk8s.io/) -> In order to configure a yaml file for k8s resources, understanding the yaml file is necessary, and cdk8s provides an alternative to understanding yaml files by abstracting k8s resources. # install cli brew inst.. 2023. 9. 8. kube API server and kubernetes python client Although I briefly covered this in the previous post, I would like to think again about how to access the kube API server and Kubernetes, and briefly record how to interact with the Kubernetes cluster using python. 1. kube API server As described in the k8s official documentation, the core of the various components of the control plane that makes up Kubernetes is the kube API server. It is a com.. 2023. 8. 13. kops k8s 클러스터 관리도구 Kops로 k8s 설치하기 https://kubernetes.io/ko/docs/setup/production-environment/tools/kops/ Kops를 사용하여 AWS에서 Kubernetes 클러스터 관리 https://aws.amazon.com/blogs/compute/kubernetes-clusters-aws-kops/ GitHub kubernetes/kops https://github.com/kubernetes/kops 공식 가이드 https://kops.sigs.k8s.io/getting_started/install/kops 설치 curl -Lo kops https://github.com/kubernetes/kops/releases/download/$(curl -s https://ap.. 2023. 4. 10. k3s 공식 사이트 https://docs.k3s.io/ k3s 는 rancher 에서 만든 경량화된 kubernetes # 마스터 노드 설치 curl -sfL https://get.k3s.io | sh - systemctl status k3s kubectl get node kubectl get all --all-namespaces # 워커 노드 조인 마스터 노드에서 토큰 확인 cat /var/lib/rancher/k3s/server/node-token curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken sh - 워커 노드에 고유한 호스트네임이 없는 경우 K3S_NODE_NAME 변수 추가 전달 # 배포 및 서비스 .. 2023. 4. 10. kubernetes 에서 argocd 자동 배포 환경 구성 쿠버네티스 관련 학습을 하다 유용한 CD(지속적인 배포)도구를 알게 되어 공유하고자합니다. 1. argocd 란 argocd 는 쿠버네티스용 CD 도구로 GitOps 방법론의 특성을 가지고 있습니다. GitOps 란 배포와 관련된 모든 구성 요소를 Git을 통해 코드로 관리한다는 의미를 가지고 있습니다. 이러한 GitOps 는 크게 1) 선언형 모델과 2) SSOT(single source of truth, 단일 진실 공급원)의 특징을 가집니다. 1) 선언형 모델 모든 구성 요소가 명령형 모델이 아닌 선언형 모델을 따릅니다. 여기서 명령형 모델이란 어떤 행위를 정의하는 것이라면, 선언형 모델은 어떤 상태를 정의하는 것입니다. 예를 들어 명령형 모델이 "웹 서버 컨테이너 2개를 생성해라"라면, 선언형 모델.. 2023. 3. 13. k8s HA 구성과 kubespray를 통한 클러스터 배포 지난 학습 자료를 통해 도커와 쿠버네티스, 그리고 관리형 쿠버네티스 서비스인 AWS EKS 등에 대해 알아보았습니다. 또 업로드해드린 자료를 통해 직접 쿠버네티스 클러스터를 구성해보신 분들도 계셨는데요. 지난 자료에 업로드해드린 쿠버네티스 클러스터는 모두 클러스터를 생성하는 가장 기본적인 방법인 kubeadm을 통한 방법이었습니다. 아래는 쿠버네티스의 컴포넌트 구성도인데요. 기억이 나실지 모르겠습니다. 이 구성도에서는 하나의 마스터노드와 3개의 워커노드로 구성된 클러스터의 모습 보여주고 있는데요. (현재는 마스터노드/워커노드라는 용어보다 컨트롤플레인/데이터플레인이라는 용어를 사용하는데, 마스터노드/워커노드라는 용어가 더 직관적이라고 생각해서 용어는 그대로 통일해서 마스터노드/워커노드로 표현하겠습니다) 하.. 2023. 3. 12. istio traffic management istio traffic management # 이미 구성된 환경 gke 클러스터 asm(istio 도 무관) bookinfo 샘플 앱(gateway, virtualservice 포함) # destination rule 생성 -> 룰은 목적지에 대한 라우팅 룰일뿐 실제 라우팅을 정의하는 것을 virtualservice 리소스 kubectl apply -f https://raw.githubusercontent.com/istio/istio/master/samples/bookinfo/networking/destination-rule-all.yaml kubectl get destinationrules kubectl get destinationrules -o yaml apiVersion: networking.is.. 2023. 3. 10. k8s network policy network policy k8s network policy 가이드 https://kubernetes.io/ko/docs/concepts/services-networking/network-policies/ gke network plicy 가이드 https://cloud.google.com/kubernetes-engine/docs/tutorials/network-policy?hl=ko # 정책 예제 "kubernetes.io/metadata.name: privacy" 레이블을 가진 네임스페이스의 "app: privacy" 레이블을 가진 파드 -> my-flask-app 네임스페이스의 "app: my-flask-app" 레이블을 가진 파드로 액세스 가능하도록 설정 -> 해당 파드에 적용되면서 policyTy.. 2023. 3. 10. ingress-nginx ingress-nginx https://kubernetes.github.io/ingress-nginx/ # ingress 외부에서 내부로 들어오는 트래픽을 처리하는 클러스터의 진입점으로 ingress 를 통해 외부에서 들어온 트래픽은 해당 서비스의 cluster ip 를 통해 로드밸런싱됨 ingress-nginx 는 여러 네임스페이스에 걸친 서비스를 등록 가능 (alb 하나로 하나의 네임스페이스에 있는 서비스만 등록 가능한 alb ingress controller 와 다른 부분) ingress 오브젝트 서비스 설정 yaml 파일의 예시 cat bootcamp-ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingres.. 2023. 3. 10. 이전 1 2 3 다음