본문 바로가기
  • 오늘처럼

소프트웨어 아키텍처74

Kubectl 명령어의 Proxy, Port-Forward 기능 Kubernetes Cluster 에서 수행되는 모든 작업은 kube-api server 에 의해서 이루어진다. 그렇기에 사용자는 kube-api server와 통신하기 위해 다음의 2가지 방식을 사용한다. kubectl client tool 을 사용하여 kube-api server 와 상호작용(interaction) curl 명령을 사용하여 kube-api server 에 REST API 통신 여기서 1번째 방식인 kubectl 클라이언트 툴을 사용할 경우, 별도의 authentication 이나 authorization 에 해당하는 설정을 할 필요가 없다. 이미 사용자 홈 디렉토리(root 유저일 경우 /root/.kube)에 config 설정 파일이 있고, kubectl 명령이 수행 될 때 자동으로.. 2022. 7. 15.
Kubelet authenticatoin/authoziation Kubernetes cluster 에서 worker node 는 master node 에 있는 controlplane 인 kube-api server 와 통신하여 클러스터를 구성하게 된다. 이 때 노드에서는 kubelet 프로세스가 이 작업을 수행하는데, 여기에서는 kubelet 의 역할과 kubelet 에 대한 authentication(인증) / authorization(권한 관리) 방법에 대하여 알아보고 kubelet 과 worker 노드를 안전하게 지키기 위하여 권장되는 방법을 확인해본다. 1. kubelet 의 역할 먼저 kubelet 은, kubeadm 등의 도구와 함께 사용되어, kubernetes cluster 에 worker 노드를 등록해주는 역할을 한다. 정상적으로 등록이 된 후 kub.. 2022. 7. 14.
Kubernetes Authorization (권한 검사 및 부여) 1. Kubernetes Authorization Kubernetes 클러스터 안에서, 사용자는 curl 통신을 수행하거나 kubectl / kubeadm 등의 명령어를 이용하여 Kube-API Server 에 접근하고 이를 통해 클러스터 전체를 관리하게 된다. 클러스터의 관리자(Administrator of Cluster) 로서 사용자는 는 Deployment 를 생성하여 Pod를 관리하거나, Node 를 생성하거나 혹은 삭제하는 등의 리소스에 대한 모든 행동(action - verb)을 수행할 수 있다. 하지만 실제 클러스터를 관리함에 따라, 다양한 성격의 관리자나 개발자 혹은 테스터와 같은 사용자들이 클러스터에 접근하게 되는데, 이들에게는 각각 역할에 따라 크고 작은 다양한 권한이 필요하다. 예를 .. 2022. 7. 13.
Kubernetes API Version / Groups Kubernetes 클러스터는 Control plane 구성요소로 Kube Controller, Kube Scheduler 등이 있지만 가장 핵심이 되는 구성 요소는 Kube API Server 이다. 사용자는 이 API 서버에서 제공하는 API를 통하여 Kubernetes 의 모든 오브젝트를 관리할 수 있다. 또한 대부분의 API 는 kubectl 명령어 / kubeadm 명령어로도 동일한 기능을 제공한다. 다음은 파드 정보를 조회하는 명령어의 예시이다. #1. curl 명령을 통한 default 네임스페이스의 파드 조회 curl -k http://localhost:8001/api/v1/namespaces/default/pods { "kind": "PodList", "apiVersion": "v1", .. 2022. 7. 12.
KubeConfig 파일 확인하기 KubeConfig 파일 Kubernetes 클러스터는 Scheduler, Controller 등 여러 모듈로 구성되어 있으며, 사용자는 kube-apiserver 와 통신하여 클러스터의 정보를 조회하거나 파드 등의 자원을 관리한다. 이번에는 이렇게 kube-apiserver 와의 통신을 위해 필요한 KubeConfig 파일에 대해 확인해본다. 사용자는 Kube API Server 와의 안전한 통신을 위하여 TLS 인증을 사용하는 통신을 수행하게 되는데, 다음과 같은 방법을 사용한다. # curl 명령을 통한 클러스터 내 파드 리스트 조회 curl https://my-kubeapi-server:6443/api/v1/pods \ --key admin.key \ --cert admin.crt \ --cace.. 2022. 7. 11.
TLS 인증서 (3) - openssl 을 통해 key, csr, crt 파일 만들기 *명령어는 최하단에 별도로 정리하였습니다. 이번에는 실제 명령어를 사용하여 key, csr, crt 파일을 생성해본다. 1. key 파일 생성 먼저 비대칭 암호화 통신에 사용되는 개인키(비밀키)를 생성한다. # 개인키 만들기 명령어 : openssl genrsa [-out filename] [numbits] - numbits 의 경우 개인키의 사이즈이며 반드시 명령어 마지막에 위치 (디폴트 값은 512) openssl genrsa -out test.key 2048 생성된 개인키의 키 값과 파일 내용을 각각 확인한다. # 완성된 개인키의 파일 내용 확인 cat ./test.key -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAr9IpTEnzxy660fPz7HeTJth.. 2022. 6. 17.