2024/10 44

CKA 예제 리마인더 - 13. Rolling Updates and Rollbacks

롤링업데이트를 하는 디플로이를 생성하세요 apiVersion: apps/v1kind: Deploymentmetadata: annotations: deployment.kubernetes.io/revision: "1" creationTimestamp: "2024-10-30T16:55:55Z" generation: 1 name: frontend namespace: default resourceVersion: "905" uid: 4e331b0d-b765-4487-ab01-a84a98340324spec: minReadySeconds: 20 progressDeadlineSeconds: 600 replicas: 4 revisionHistoryLimit: 10 selector: matc..

DevOps 2024.10.31

CKA 예제 리마인더 - 12. Multiple Schedulers

새로운 스케쥴러를 생성하세요 apiVersion: v1 kind: Pod metadata:   labels:     run: my-scheduler   name: my-scheduler   namespace: kube-system spec:   serviceAccountName: my-scheduler   containers:   - command:     - /usr/local/bin/kube-scheduler     - --config=/etc/kubernetes/my-scheduler/my-scheduler-config.yaml     image: registry.k8s.io/kube-scheduler:v1.31.0      livenessProbe:       httpGet:         pat..

DevOps 2024.10.31

CKA 예제 리마인더 - 11. Static PODs

클러스터에 있는 모든 네임스페이스에 존재하는 고정 파드 갯수를 찾으세요 나의 답안 ) cd /etc/kubernetes/manifest 에 가서 yaml 파일 갯수 확인 ( 모든 static pod가 같은 노드에 있을 때만 사용해야함 )Solution ) kubectl get po  -n= -o yaml 을 했을 때 ownerreference를 참조한다   ownerReferences:   - apiVersion: v1     controller: true     kind: Node     name: controlplane 이렇게 onwer의 kind가 Node라면 static Pod로 분류된다 새로운 고정 파드를 생성하세요 Name: static-busybox Image: busybox command:..

DevOps 2024.10.31

CKA 예제 리마인더 - 10. DaemonSets

실행되고 있는 DaemonSets 갯수를 찾으세요 나의 답안 ) kubectl get daemonset -A --no-headers | wc -l Solution ) 나의 답안과 같음 다른 네임스페이스에 있는 특정 DaemonSet가 생성한 파드가 몇 개 인지 찾으세요 나의 답안 ) kubectl describe daemonset  -n= Solution ) kubectl describe daemonset  -n= 도 가능하지만 사실 kubectl get daemonset  만으로 파드의 desire 값, current, ready등등 지표가 출력된다 DaemonSet을 생성하세요Name: elasticsearch Namespace: kube-system Image: registry.k8s.io/flue..

DevOps 2024.10.30

CKA 예제 리마인더 - 9. Resource Limits

파드의 메모리 limits를 재설정해서 실행하세요 나의 답안 ) 실행중인 파드의 Manifest를 가져옴 kubectl get po  -o yaml > ./.yaml kubectl delete po  spec 아래의 메모리 limit를 수정한 후 kubectl apply -f .yaml 혹은 kubectl edit po  로도 수정을 시도 했는데, error: pods is invalid A copy of your changes has been stored to "/tmp/kubectl-edit-1295947630.yaml" error: Edit cancelled, no valid changes were saved. 라는 에러메세지가 반환되었다. 파드를 삭제하고 알려준 경로의 yaml파일을 apply하..

DevOps 2024.10.30

Kubernetes - Taints Tolerations, Node Affinity 예시

1. Node AffinityNode Affinity는 파드가 특정 라벨이 있는 노드에 스케줄링되도록 요구하거나 선호하도록 설정할 수 있습니다.필수 설정: 특정 조건이 충족되지 않으면 파드가 해당 노드에 배치되지 않습니다.yaml apiVersion: v1kind: Podmetadata: name: my-podspec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: "node-type" operator: In values..

DevOps 2024.10.29

Kubernetes - Node Affinity.Operator

Kubernetes의 Node Affinity는 특정 노드에서 파드를 스케줄링할 수 있도록 제약을 설정하는 기능입니다. Node Affinity는 주로 노드의 라벨을 기반으로 파드가 특정 노드에 배치되거나 배치되지 않도록 합니다. 이때 Operator는 노드 어피니티의 조건을 정의하는 요소로, 파드가 노드의 라벨 조건을 어떻게 만족해야 하는지 결정합니다.Node Affinity의 Operator 유형Node Affinity의 Operator에는 다음과 같은 주요 유형들이 있습니다.In설명: 특정 키의 값이 지정된 값 목록에 포함되는 경우 조건이 충족됩니다.예시: key: "zone"이 있고, operator: In, values: ["us-west-1", "us-west-2"]라면, 노드의 zone 라벨..

DevOps 2024.10.29

CKA 예제 리마인더 - 8. Node Affinity

node01 노드에 color=blue 라벨을 추가하세요 나의 답안 ) kubectl label nodes node01 color=blue Solution )  나의 답안과 같음blue라는 이름의 nginx이미지를 사용하는 레플리카 3개의 디플로이를 생성하세요 나의 답안 ) blue-deploy.yaml 생성 apiVersion: apps/v1kind: Deploymentmetadata: name: blue labels: app: nginxspec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: ..

DevOps 2024.10.29

CKA 예제 리마인더 - 7. Taints and Tolerations

node01 노드에 key=spray value=mortein taint-effect=NoSchedule 테인트를 만드세요 나의 답안 ) kubectl taint nodes node01 spray=mortein:NoSchedule kubectl describe node node01 | grep Taint Solution ) 나의 답안과 같음 Taint가 적용된 파드를 만드세요 Image name: nginx Key: spray Value: mortein Effect: NoSchedule Status: Running 나의 답안 ) kubectl run bee --image=nginx --dry-run=client -o yaml > ./bee.yaml vi bee.yaml spec 아래에 toleration..

DevOps 2024.10.28