본문 바로가기

반응형
[kubernetes] Kubernetes 스토리지 Volumes 소개 - 컨테이너는 pod에 바인딩 되는 볼륨을 마운트 하고 마치 로컬 파일시스템에 있는 것처럼 스토리지에 접근한다. Kubernetes 스토리지 volumes - name: html hostPath: path: /hodtdir_or_file 컨테이너 단위로 mount volumeMounts: - name: html mountPath: /usr/share/nginx/html 각 노드의 /webdata 디렉토리를 생성하고 index.html 파일을 생성한다. mkdir /webdata /webdata# cat index.html HOST1 hostpath.yaml 실행 후 curl 명령을 통해 확인 cat hostpath.yaml apiVersion: v1 kind: Pod metadata:..
[JAVA] JRE와 JDK JRE와 JDK JRE(Java Runtime Enviornment)는 자바 어플리케이션 실행을 위한 환경을 제공한다. JDK(Java Development Kit)는 JRE에 javac 컴파일러와 유용한 여러 유틸리티를 추가로 제공한다.
[Kubernetes] Kubernetes 권한 권한관리 - 특정 유저나 ServiceAccount가 접근하려는 API에 접근 권한을 설정 - 권한 있는 User만 접근하도록 허용 - 권한제어 - Role 1. 어떤 API를 이용할 수 있는지의 정의 2. 쿠버네티스의 사용권한을 정의 3. 지정된 네임스페이스에서만 유효 - RoleBinding 1. 사용자/그룹 또는 ServiceAccount와 role을 연결 아래 링크를 참고하여 예제 진행 https://kubernetes.io/docs/reference/access-authn-authz/certificate-signing-requests/ kubectl create role developer --verb=create --verb=get --verb=list --verb=update --verb=de..
[Kubernetes] Kubernetes 인증 kubectl 명령을 실행했을 때 요청했던 유저는 kubernetes-admin 유저이다. # kubectl config view apiVersion: v1 clusters: - cluster: certificate-authority-data: DATA+OMITTED server: https://10.100.0.104:6443 name: kubernetes contexts: - context: cluster: kubernetes namespace: ingress-nginx user: kubernetes-admin name: ingress-admin@kubernetes - context: cluster: kubernetes user: kubernetes-admin name: kubernetes-admin@..
[Kubernetes] taint&toleraton, cordon&drain taint&toleraton - node taint, Pod tolertation - worker node에 taint가 설정된 경우 동일 값의 toleration이 있는 Pod만 배치된다. - toleration이 있는 Pod는 동일한 taint가 있는 node를 포함하여 모든 node에 배치된다. - effect 필드 종류 1) NoSchedule : toleration이 맞지 않으면 배치 되지 않는다. 2) PreferNoSchedule : toleration이 맞지 않으면 배치되지 않으나, 클러스터 리소스가 부족하면 할당된다. 3) NoExecute : toleration이 맞으면 동작중인 pod를 종료 master 노드에서는 어플리케이션 pod 가 실행되지 않는 이유는 아래와 같이 NoSched..
[Kubernetes] Pod Scheduling Node Selector - Worker node에 할당된 label을 이용해 node 선택 - node Label 설정 kubectl label nodes = kubectl label nodes node1.example.com gpu=true kubectl get nodes -L gpu # kubectl label node node{1,2}.example.com gpu=true node/node1.example.com not labeled node/node2.example.com not labeled # kubectl get node -L gpu NAME STATUS ROLES AGE VERSION GPU master.example.com Ready control-plane 63d v1.25.4 nod..
[Kubernetes] Istio 정리 서비스 메쉬(Service Mesh) 란? Istio는 서비스 메쉬(Service Mesh)를 구현할 수 있는 오픈소스이다. 서비스 메쉬(Service Mesh)란 API 등을 사용하여 마이크로 서비스 간 통신을 안전하고, 빠르고, 신뢰할 수 있게 만들기 위해 설계된 전용 인프라 계층이다. 서비스 메쉬는 보통 Application 서비스에 경량화 프록시(Proxy)를 사이드카(sidecar) 방식으로 배치하여 서비스 간 통신을 제어하며, Service Discovery, Load Balancing, Dynamic Request Routing, Circuit Breacking, Retry and Timeout, TLS, Distributed Tracing, Metric 수집, Access Control, ..
GitOps와 ArgoCD 1. GitOps GitOps 란? - GitOps는 DevOps의 실천 방법 중 하나로 애플리케이션의 배포와 운영에 관련된 모든 요소들을 Git에서 관리한다는 뜻 - GitOps는 Kubernetes Manifest 파일을 Git에서 관리하고, 배포할때에도 Git에 저장된 Manifest로 클러스터에 배포하는 일련의 과정들을 의미 ※ Manifest 파일 : 쿠버네티스의 오브젝트를 생성하기 위한 메타 정보를 YAML이나 JSON으로 기술한 파일 GitOps의 원칙 1) 모든 시스템은 선언적으로 선언되어야 함 “선언적(declarative)”이라 함은 명령들의 집합이 아니라 사실(fact)들의 집합으로 구성이 되었음을 보장한다는 의미입니다. 쿠버네티스의 manifest들은 모두 선언적으로 작성되었고 이를..

반응형