kubernetes 최초 생성시 추가 옵션 없이 kubeadm init를 실행하면 기본 cluster name인 kubernetes로 cluster name이 지정됩니다.
kubectl config rename-context로 표시되는 context name 수정이 가능 하지만 최초 생성시부터 원하는 cluster name으로 생성이 되도록 하는 방안을 확인해보겠습니다.
# cluster-config.yaml 생성
# criSocket 옵션 지정이 필요해서 InitConfiguration이 추가 되었습니다. 불필요시 ClusterConfiguration만 선언하면 됩니다.
cat << EOF > cluster-config.yaml
apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
nodeRegistration:
criSocket: /var/run/cri-dockerd.sock
---
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
clusterName: my-cluster
kubernetesVersion: stable
controlPlaneEndpoint: "k8s-master-01:6443"
networking:
podSubnet: "10.244.0.0/16"
EOF
$ sudo kubeadm init --config=cluster-config.yaml
$ kubectl config get-clusters
NAME
my-cluster
RBAC(deployment scraper, namespace cute-panda) sa scraper 생성 > clusterrole(resource pod, list) > clusterrole bind > deployment sa 할당
serviceaccount ※ system:serviceaccount:gorilla:gorilla-sa – 권한 있는 sa로 deployment 할당
postgre deployment의 ENV를 참고해서 secret을 생성 하는 문제
pod resource requests pod에 적용
pod resource requests 적용, limitrange max memory 사이즈의 1/2을 limit에 적용하라 였음
readiness httpget /healthz port 8081, initialdelayseconds, periodseconds 수정 문제
Cronjob – activedeadline: 8, restartPolicy: Never, .spec.successfulJobsHistoryLimit and .spec.failedJobsHistoryLimit 나옴, grep-test job 도 생성 해야 되는 것 같음
구버전 kube yaml 수정 문제, namespace 도 수정하라고 했음
rolling update 문제
pod security – user id, allowPrivilegeEscalation: false 수정
network policy 라벨 추가 문제 db-access, front-access
canary – 8:2 조정하라고 나옴
docker…
maxSurge, maxUnavailable 수정 후 nginx 버전 변경 후 rollout undo
deployment 레이블 추가, replicas 변경 후 k expose deployment [deployment] –type NodePort –name alice? 생성 문제
deployment의 컨테이너 포트 참고해서 ingress, service yaml 포트, path 변경
ingress 도메인 적용 생성 문제
출제 문제
※ 기억에 의존해 복기하는 문제라 오류가 있을 수 있습니다. 참고만 부탁 드립니다.
namespace가 cute-panda 이고 deployment가 scraper인 pod에서 error log를 확인할 것
“system:serviceaccount:cute-panda:scraper” cannot Iist resource “pods” error log 처리를 위해 필요한 처리와 적절한 role를 적용할 것
# Kubernetes 메뉴얼https://kubernetes.io/docs/reference/kubectl/generated/kubectl_auth/kubectl_auth_can-i/ https://kubernetes.io/docs/reference/kubectl/generated/kubectl_create/kubectl_create_serviceaccount/ https://kubernetes.io/docs/reference/kubectl/generated/kubectl_create/kubectl_create_clusterrole/ https://kubernetes.io/docs/reference/kubectl/generated/kubectl_create/kubectl_create_clusterrolebinding/
# scraper deployment가 생성한 pod 명 확인 후 *에 적용
$ k pod -n cute-panda
$ k logs -n cute-panda scraper-*
# error log 확인
# Service Account 생성
$ k create sa -n cute-panda scraper
# 결과값 no 확인
$ k auth can-i list pods –as=system:serviceaccount:cute-panda:scraper -n scraper
# clusterrole 생성 및 clusterrolebinding 생성 처리
k create clusterrole cr –verbs=list –resource=pods -n cute-panda
k create clusterrolebinding crb –clusterrole=cr –serviceaccount=cute-panda:scraper
# scraper deployment에 scraper service account 적용
$ k set serviceaccount deployment -n cute-panda scraper scraper
# 결과값 yes 확인
$ k auth can-i list pods –as=system:serviceaccount:cute-panda:scraper -n scraper
# pod 재생성 확인 및 생성된 pod 명 확인 후 *에 적용
$ k pod -n cute-panda
$ k logs -n cute-panda scraper-*
# error log 미발생 확인
글 내비게이션
IT Infomation, Ultima Online