K8S
-
K8S 설계 개념(Kubernetes Design Concept)K8S 2021. 9. 15. 14:43
틀린 내용이 있을 수도 있습니다! 틀린 내용이 있다면 댓글로 달아주시면 감사하겠습니다! 이번 포스팅은 K8S가 어떤 설계 개념을 토대로 디자인 되었는지 알아본다. Saad Ali라는 구글 개발자는 다음 규칙을 바탕으로 K8S를 설계했다. 1. Kubernetes APIs are declarative rather the imperative 2. No hidden internal APIs 3. Meet the user where they are: Remote storage 4. Workload portability 1. Kubernetes APIs are declarative rather the imperative 1) Imperative way 이전에는 시스템에 명령어를 직접 입력해서 시스템을 desire..
-
K8S + Istio 환경에서 Nginx Proxy 설정하기K8S 2021. 9. 13. 12:36
틀린 내용이 있을 수도 있습니다! 틀린 내용이 있다면 댓글로 달아주시면 감사하겠습니다! 이번 포스팅은 K8S + 이스티오 환경에서 Nginx로 proxy를 만들고, API 서버들의 엔드포인트를 단일화하여 API Gateway로 사용하기 위한 Nginx Configuration에 대한 정리다. 그냥 nginx를 프록시로 만들어서 클러스터에 올리면 되지 않냐 왜 굳이 K8S + Istio를 명시하여 포스팅하냐고 생각할 수도 있는데... Istio는 envoy proxy를 기반으로 하기 때문에 nginx로 요청이 들어오기 위해선 envoy를 거쳐서 들어와야 한다. 따라서 나의 경우, Local 환경에서 테스트할때 정상이였던 nginx proxy는 클러스터 내부에서는 잘 동작하지 않았다. 그래서 이번 포스팅은 ..
-
K8S Network Policy 정리K8S 2021. 8. 2. 16:07
틀린 내용이 있을 수도 있습니다! 틀린 내용이 있다면 댓글로 달아주시면 감사하겠습니다! network policy를 이용하면 IP, namespace, pod에 따른 클러스터 내부 트래픽을 제어할 수 있다. 다음 예시를 통해서 확인하자. 1. Network policy 확인하기 networkpolicy의 alias는 netpol이므로 다음과 같이 확인할 수도 있다. payroll-policy는 name=payroll인 label을 갖는 pod를 selecting한다. 2. Network Policy Detail 확인하기 payroll-policy라는 networkpolicy가 어떤 네트워크 정책인지 확인해 보자. 위 network policy는 다음과 같은 특징을 갖는다. name=payroll labe..
-
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 RBAC - Role 정리K8S 2021. 8. 1. 01:06
틀린 내용이 있을 수도 있습니다! 틀린 내용이 있다면 댓글로 달아주시면 감사하겠습니다! RBAC는 사용자에게 특정 역할(Role)을 부여하여 권한을 제한하는 방식이다. RBAC에는 Cluster 단위의 Clusterrole과 namespace 단위의 Role이 있다. RBAC를 생성하기 위해서는 역할을 명시해 놓은 Role object와 사용자, 그리고 role을 사용자에게 매핑할 RoleBinding Object가 필요하다. 1. authorization mode 확인하기 k8s api server에는 어떤 인가 모드를 사용하는지 명시되어 있다. # cat /etc/kubernetes/manifests/kube-apiserver.yaml | grep mode 2. 모든 네임스페이스에 있는 Role 확인..
-
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 Certificate Signing Request 정리K8S 2021. 7. 30. 23:38
Akshay가 우리팀에 합류한다고 한다. Akshay의 certificate 발급을 위해, kubernetes-admin에게 Akshay의 csr과 key를 받았다. 이제 akshay에 대한 CSR을 생성하자. CSR의 request에는 base64로 인코딩된 csr파일 내용이 들어가야 하므로 다음 커맨드를 입력해준다. csr파일 내용을 이용하여 CSR오브젝트 생성 akshay에 대한 csr request를 approve해주기 만약 모르는 CSR request가 있다면 deny하기
-
K8S TLS Certificate 정리K8S 2021. 7. 26. 13:26
이번 포스팅은 K8S 클러스터의 TLS Certificate에 대해 정리한다. K8S TLS에 대해 알아보기 전, TLS Certificate에 대한 기본적인 내용을 짚고 넘어가자. Certificate는 다음과 같이 세 종류가 있고, 기본적으로 세가지 모두가 필요하다. - CA에서 발급한 root certificate - 서버에서 발급한 server certificate - 클라이언트에서 발급한 client certificate 만약 Certificate에 대해 잘 모르겠다면 다음을 참고. TLS Certificate란?(대칭 키, 비대칭 키, CA, PKI) 이번 포스팅은 사용자-은행 시나리오를 통해 TLS Certificate가 무엇인지 그리고 추가적으로 알아야 할 보안적인 요소에 대해서 다룬다. ..