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
각종 정보 찾기
- How many controlplane nodes are available?
- kubectl get node
- How many worker nodes are available?
-
- kubectl get node
-
- What is the Service CIDR?
-
cat /etc/kubernetes/manifests/kube-apiserver.yaml | grep range - --service-cluster-ip-range=10.96.0.0/12
-
- Which Networking (or CNI Plugin) is configured and where is its config file?
- find /etc/cni/net.d/
- Which suffix will static pods have that run on cluster1-node1?
- The suffix is the node hostname with a leading hyphen.
- -{node-name}
- The suffix is the node hostname with a leading hyphen.
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
'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 |