본문 바로가기

분류 전체보기

(345)
PODs 와 Deployments를 편집하기위한 Quick note ㅁ Edit a POD 아래 이외의 기존 POD의 spec은 변경할 수 없다. spec.containers[*].image spec.initContainers[*].image spec.activeDeadlineSeconds spec.tolerations 예를 들어 실행중인 POD의 환경 변수, 서비스 계정, 리소스 Limit은 모두 편집할 수 없다. 하지만 정말 편집하길 원한다면 아래의 두가지 옵션이 있다. 첫번째 kubectl edit pod 이 명령어를 사용하면 vi editor가 열리고 거기서 속성을 편집한다. 하지만 편집하려고 하면 거부된다. 편집할 수 없는 POD의 필드를 편집하려고 하고 때문이다. 변경 사항이 있는 파일의 Copy본은 위에 표시된대로 임시 위치(/tmp/kubectl-edit-..
Resource Limits 0. Default Pod가 생성되면 컨테이너에 기본 CPU Request .5와 Memory 256Mi 가 할당된다. Pod가 이러한 기본 값을 선택하려면 먼저 해당 Namespace에 LimitRange를 만들어 Request 및 Limit에 대한 기본값으로 설정해야 함. apiVersion: v1 kind: LimitRange metadata: name: mem-limit-range spec: limits: - default: memory: 512Mi defaultRequest: memory: 256Mi type: Container https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/..
Practice Test - Node Selectors/Affinity kubectl label nodes = kubectl label nodes node-1 size=large Node Affinity Type은 - requiredDuringSchedulingIgnoredDuringExecution - preferredDuringSchedulingIgnoredDuringExecution 로 부르는 두 가지 종류의 노드 어피니티가 있다. 전자는 파드가 노드에 스케줄되도록 반드시 규칙을 만족해야 하는 것(nodeSelector 와 같으나 보다 표현적인 구문을 사용해서)을 지정하고, 후자는 스케줄러가 시도하려고는 하지만, 보증하지 않는 선호(preferences) 를 지정한다는 점에서 이를 각각 "엄격함(hard)" 과 "유연함(soft)" 으로 생각할 수 있다. 이름의 "Ig..
Practice Test - Taints and Tolerations ㅁ 기본 설명 Taints - Node (Taints 는 Node에 설정하여 Tolerant 설정이 되어 있지 않는 Pod의 스케줄을 막는다.) kubectl tain nodes node-name key=value:taint-effect 아래는 설정 예제 kubectl taint nodes node1 app=blue:NoSchedule NoSchedule이 필요한 이유는 아래와 같이 Master Node에 다른 서비스 Pod들이 스케줄 되는 것을 막는 것이 가장 적절한 예로 보임 [Practice Test] ㅁ How many Nodes exist on the system? kubectl get nodes ㅁ Do any taints exist on node01? kubectl describe node ..
Practice Test - Labels and Selectors ㅁ We have deployed a number of PODs. They are labelled with 'tier', 'env' and 'bu'. How many PODs exist in the 'dev' environmnet? Use selectors to filter the output kubectl get pods --show-labels kubectl get pods --selector env=dev or kubectl get pods -l env=dev or kbuectl get pods -l env=dev --no-headers | wc -l ㅁ How many PODs are in the "finance" business unit ("bu")" kubectl get pods --selec..
Labels and Selectors Pod-definition.yaml apiVersion: v1 kind: Pod metatdata: name: simple-webapp labels; app: App1 function: Front-end spec: containers: - name: simple-webapp image: simple-webapp ports: - containerPort: 8080 Select kubectl get pods --selector app=App1 Replicaset-definition.yaml apiVersion: apps/v1 kind: ReplicaSet metadata: name: simple-webapp labels: app: App1 function: Front-end annotations: build..
Manual Scheduling ㅁ A pod definition file nginx.yaml is given. Create pod using the file. kubectl apply -f nginx.yaml ㅁ What is the status of the created POD? kubectl get pods ㅁ Why is the POD in a pending state? kubectl -n kube-system get pods kubectl describe pod nginx ㅁ Manually schedule the pod on node01 apiVersion: v1 kind: Pod metadata: name: nginx spec: nodeName: node01 containers: - image: nginx name: ngi..
kubectl apply command ㅁ Declarative Create Object kubectl apply -f nginx.yaml kubectl apply -f /path/to/config-files Update Object kubectl apply -f nginx.yaml