카테고리 보관물:  IT

CKAD RBAC 문제 후기 – 20250618

출제 문제

※ 기억에 의존해 복기하는 문제라 오류가 있을 수 있습니다.
참고만 부탁 드립니다.

  • 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 미발생 확인

CKAD Ingress 문제 후기 – 20250618

출제 문제

※ 기억에 의존해 복기하는 문제라 오류가 있을 수 있습니다.
참고만 부탁 드립니다.

  • 사용자가 www.example.com URL로 접속할 때 라우팅이 가능하도록 Ingress를 생성
  • 기생성 Service 의 name과 port를 참고 하여 Ingress 반영
    service name : service1
    port : 80
  • Ingress name은 ingressWeb으로 할 것
  • YAML파일을 작성하여 생성할 것

# Kubernetes 메뉴얼
https://kubernetes.io/docs/concepts/services-networking/ingress/

# ingress.yaml 생성

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingressWeb
spec:
  rules:
  - host: "www.example.com"
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: service1
            port:
              number: 80

# Ingress 생성 및 상태 확인
$ kubectl apply -f ingress.yaml
$ kubectl get ingress
$ kubectl describe ingress ingressWeb

CKAD Secrets 문제 후기 – 20250618

출제 문제

※ 기억에 의존해 복기하는 문제라 오류가 있을 수 있습니다.
참고만 부탁 드립니다.

  • postgres deployment의 env에 하드코딩 된 argument를 참고하여 secret 생성
    secret name : postgres
    namespace : devops
    key name : username, database, password
  • 생성된 postgres secret을 postgres deployment의 env에 하드코딩 된 argument를 수정 반영
    ※ postgres deployment YAML파일을 제공하고 수정해서 재배포하라고 나왔을 수 있음

# Kubernetes 메뉴얼
https://kubernetes.io/docs/tasks/configmap-secret/managing-secret-using-kubectl/
https://kubernetes.io/docs/tasks/inject-data-application/distribute-credentials-secure/

# postgres deployment의 env 확인
$ kubectl describe deployment -n devops postgres | grep -A3 Environment
    Environment:
      PG_USERNAME:       pgadmin
      PG_DATABASE:       pgdatabase
      PG_PASSWORD:       pgpwd1234
# Secret 생성
$ kubectl create secret generic postgres --from-literal=username=pgadmin --from-literal=database=pgdatabase --from-literal=password=pgpwd1234 -n devops

$ kubectl get secrets -n devops
# 제공된 postgres deployment의 yaml 수정 및 저장
$ vi postgres-deployment.yaml
...
spec:
  containers:
  - name: postgres
    image: postgres:stable
    env:
    - name: PG_USERNAME
      valueFrom:
        secretKeyRef:
          name: postgres
          key: username
    - name: PG_DATABASE
      valueFrom:
        secretKeyRef:
          name: postgres
          key: database
    - name: PG_PASSWORD
      valueFrom:
        secretKeyRef:
          name: postgres
          key: password
...
# deployment 재배포
$ kubectl apply -f postgres-deployment.yaml

# Environment 값 확인
$ kubectl describe deployment -n devops postgres