Cloud/k8s-CKA

[CKA] 48. killer.sh

jinkwon.kim 2023. 11. 18. 14:24
728x90
반응형

context 찾기 

kubectl 로 찾기

kubectl config view -o jsonpath='{.contexts[*].name}' | tr " " "\n"

tr 사용법

단어 변경

tr " " '\n"

단어 삭제

tr -d '\n"

kubectl 없이 찾기

cat ~/.kube/config | grep ^current | sed -e "s/current-context: //"

control node에 배포 

control node에는 taint가 걸려있음 그래서 toleration을 걸어야 합니다. 

그러나 정확한 node에 배포 하기 위해서 nodeSelector로 어떠한 label을 가진 node인지를 선택 해야 합니다. 

nodeSelector 하는 이유 toleration이 걸려있는 pod는 아무 node에대 배포 될 수 있기 때문 입니다.

# 2.yaml
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: pod1
  name: pod1
spec:
  containers:
  - image: httpd:2.4.41-alpine
    name: pod1-container                       # change
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
  tolerations:                                 # add
  - effect: NoSchedule                         # add
    key: node-role.kubernetes.io/control-plane # add
  nodeSelector:                                # add
    node-role.kubernetes.io/control-plane: ""  # add
status: {}

Pod 개수 조절 방법

Pod의 replicas는 아래 3개중 하나로 관리가 됩니다.

1. replicaset (rs)

2. statefulset  (sts)

3. deployment (deploy)

 

kubectl get rs, sts, deploy 

리소스 사용량 화긴

node 확인

kubectl top node

pod의 container 확인 

kubectl top pod --containers=true

Pod의 PVC 정상 mount 확인 

pod 확인

 k -n project-tiger describe pod safari-5cbf46d6d-mjhsb  | grep -A2 Mounts: 

Rolebinding 생성시 유의 사항

user 등록 방법

user는 namespace가 없다.

subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: user-1

 

serviceaccount 등록 방법

serviceaccount는 namespace가 있다 

subjects:
- kind: ServiceAccount
  name: processor
  namespace: project-hamster

각종 정보 찾기 

  1. How many controlplane nodes are available?
    1. kubectl get node
  2. How many worker nodes are available?
      1. kubectl get node
  3. What is the Service CIDR?
    1. cat /etc/kubernetes/manifests/kube-apiserver.yaml | grep range
          - --service-cluster-ip-range=10.96.0.0/12
  4. Which Networking (or CNI Plugin) is configured and where is its config file?
    1.  find /etc/cni/net.d/
  5. Which suffix will static pods have that run on cluster1-node1?
    1. The suffix is the node hostname with a leading hyphen.
      1. -{node-name}

Cluster 전체 이벤트 보기 

kubectl get events -A --sort-by=.metadata.creationTimestamp

resource 뽑아 내기

resource 전체 보기

kubectl api-resources

resource에서 namespaced만 보기

kubectl api-resources --namespaced=true -o name

인증서 유효기간 확인

 kubeadm certs check-expiration | grep apiserver

etcd bakup 복구 

백업

ETCDCTL_API=3 etcdctl snapshot save /tmp/etcd-backup.db \
--cacert /etc/kubernetes/pki/etcd/ca.crt \
--cert /etc/kubernetes/pki/etcd/server.crt \
--key /etc/kubernetes/pki/etcd/server.key

복구

복구 명령어, 백업 명령어하고 비슷 차이점. --data-dir이 추가됨. 어디에 복구 할것 인지 설정 

기존 --data-dir은 /etc/kubernetes/manifests/etcd.yaml 에 존재합니다. 

  - hostPath:
      path: /var/lib/etcd                                                     # important
      type: DirectoryOrCreate
    name: etcd-data

복구 명령어

ETCDCTL_API=3 etcdctl snapshot restore /tmp/etcd-backup.db \
--data-dir /var/lib/etcd-backup \
--cacert /etc/kubernetes/pki/etcd/ca.crt \
--cert /etc/kubernetes/pki/etcd/server.crt \
--key /etc/kubernetes/pki/etcd/server.key
728x90
반응형

'Cloud > k8s-CKA' 카테고리의 다른 글

[k8s] trouble shooting  (0) 2023.11.29
[CKA] 49. CKA 시험 후기  (0) 2023.11.19
[CKA] 47. k8s 문제 풀이 모르는 것 정리  (0) 2023.11.17
[CKA] 46. k8s 문제 풀이(업데이트, 출력형식, PV)  (0) 2023.11.15
[CKA] 45. Troubleshooting  (0) 2023.11.07