cka
-
K8S RBAC - Cluster Role 정리K8S 2021. 8. 1. 02:09
틀린 내용이 있을 수도 있습니다! 틀린 내용이 있다면 댓글로 달아주시면 감사하겠습니다! 지난 포스팅에서는 RBAC의 Role을 다뤘고, 이번 포스팅에서는 Cluster Role에 대해서 알아본다. K8S RBAC(Role Based Access Control) 정리 RBAC는 사용자에게 특정 역할(Role)을 부여하여 권한을 제한하는 방식이다. RBAC를 생성하기 위해서는 역할을 명시해 놓은 Role object와 역할을 사용자에게 매핑한 RoleBinding Object가 필요하다. 1. authoriz seungjuitmemo.tistory.com Role과 Cluster Role Role namespace에 속하는 오브젝트로 디플로이먼트나 서비스처럼 namespace에 속하는 오브젝트들을 정의할 때..
-
K8S KubeConfig 정리K8S 2021. 7. 31. 00:37
kubeconfig파일은 cluster, user, context에 대한 정보를 담는 config파일이다. 여기서 context란 user와 cluster 사이의 관계를 매핑한 것이다. context는 여러 종류가 있을 수 있고, 현재 사용하는 context를 current-context라 한다. 1. kubeconfig 파일의 위치 2. kubeconfig 파일 확인하기 ~/.kube/config에서 확인해도 되지만 k8s는 kubeconfig파일을 확인할 수 있는 커맨드를 따로 제공한다 . 3. 특정 kubeconfig 파일 확인하기 default kubeconfig 파일(~/.kube/config 경로에 있는)이 아닌 특정 kubeconfig 파일을 확인할 때는 --kubeconfig 옵션을 이용한..
-
K8S Network Failure Trouble shootingTrouble Shooting 2021. 7. 18. 16:51
1. CNI 플러그인 Error 배포해놓은 애플리케이션이 동작하지 않아서 endpoint를 먼저 확인 엔드포인트 확인 결과, 애플리케이션 단에서는 문제가 없는 듯 하다. 네트워크 문제인가 싶어 전체 포드를 확인해보니 cni 플러그인이 없다. weave plugin 설치 kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" 애플리케이션 동작 확인 결과 잘 된다. 2. kubeproxy 에러 다음과 같이 kube-proxy pod에서 에러가 발생했다. kubeproxy로그를 확인해봤더니 컨테이너 내부에서 /var/lib/kube-proxy/configuration.conf ..
-
K8S Worker Node Not Ready Trouble ShootingTrouble Shooting 2021. 7. 18. 14:58
이번 포스팅은 worker node에서 생길 수 있는 kubelet issue에 대해서 다루고 이를 trouble shooting한다. kubelet issue는 다음과 같이 나눌 수 있다. - 워커노드의 kubelet이 죽은 경우 - inactive - 워커노드의 kubelet이 활성화되고 있는 중인 경우 - activating - 워커노드의 kubelet이 동작 중인 경우 - active 1. 워커노드의 kubelet이 죽은 경우 먼저 노드 상태를 확인한다. node01의 상태가 not ready다. 어떤 문제가 있는 듯 하다. 좀 더 구체적인 정보를 위해 node01을 inspect 해본다. 노드의 상태를 알 수 없다고 한다. node의 agent인 kubelet으로부터 필요한 데이터를 받아오지 못..
-
K8S 아키텍처 정리(ETCD, Kube-api server, Kube-controller-manager)K8S 2021. 6. 1. 12:52
1. ETCD ETCD는 안전하고 빠른 distributed reliable key-value store로 다음과 같은 RDB를 생각하면 된다. ETCD는 기본적으로 2379번 포트를 이용하며 다음 커맨드를 통해 key value을 저장할 수 있다. ./etcdctl set key1 value1 ETCD에서 값 반환하기 ./etcdctl get key1 K8S에서 ETCD의 역할 kubectl command에서 얻을 수 있는 모든 정보는 마스터 노드의 ETCD 서버로부터 얻는다. 노드를 추가할 때, 포드를 배포할때, 레플리카 셋을 변경할때 등 상태가 변화할때 ETCD 서버에서 업데이트된다. K8S 배포형태는 2가지의 타입이 있는데 scratch를 이용한 배포와 kubeadm이 있다. scratch를 이용..