본문 바로가기

반응형

Kubernetes

(62)
[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:..
[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, ..
[Kubernetes] Secret ConfigMap과 Secret - ConfigMap : 컨테이너 구성 정보를 한곳에 모아서 관리 - Secret : 컨테이너가 사용하는 password, auth token, ssh key와 같은 중요한 정보를 저장하고 민감한 구성정보를 base64로 인코딩해서 한곳에 모아서 관리 - 민감하지 않은 일반 설정파일 configmap을 사용하고 민감한 데이터는 secret을 사용 - Secret 데이터 전달 방법 1. Command-line Agrument 2. Environment Variable 3. Volume Mount Secret 만들기 kubectl create secret name [flags] [options] ※ Available Commands 로 3개 타입을 사용할 수 있고, 3개 중 ..
[Kubernetes] ConfigMap ConfigMap 생성 - ConfigMap : 컨테이너 구성 정보를 한곳에 모아서 관리 kubectl create configmap NAME [--from-file=source] [--from-liternal=key1=value1] ttabae-config 이름으로 ConfigMap 생성 및 확인 # kubectl create configmap ttabae-config --from-literal=INTERVAL=2 --from-literal=OPTION=boy --from-file=config.dir/ configmap/ttabae-config created # kubectl get configmaps ttabae-config NAME DATA AGE ttabae-config 3 2m22s # kube..

반응형