본문 바로가기

네트워크/k8s

(47)
[k8s] 31. Authorization - RBAC, Role, RoleBinding Authorization - RBAC, Role, RoleBinding 1. RBAC(Role, RoleBinding) Overview 쿠버네티스가 자원을 지원하는 방법 역할기반으로 자원을 분배 쿠버네티스는 Node, PV, Namespace와 같이 클러스터 단위로 관리되는 자원과 Pod, Svc와 같이 네임스페이스 단위로 관리되는 자원이 있음 네임스페이스를 만들면 자동적으로 Service Account가 만들어지거나 추가적으로 더 만들 수 있음 Service Account에 Role과 Role Binding을 어떻게 설정하느냐에 따라 해당 Service Account는 네임스페이스 자원에만 접근할 수 있거나 클러스터 자원에도 접근할 수 있음 RoleBinding Role은 여러 개를 만들 수 있고, 각..
[k8s] 30. Authentication - 실습 Authentication - 실습 1. X509 Client Certs 인증서를 갖고 https와 http에 대한 API를 날려봄 클러스터에 있는 kubeconfig 확인하고, Clienty key와 Client crt를 가져와서 https를 날려볼 것 kubectl로 프록시를 띄우고 http로 API를 날려볼 것 Postman 설치 및 설정 검색해서 알아서 다운 받으시고.. Settings > General > SSL certificate verification > OFF 설정 실습 과정 마스터 노드에서 다음 경로 파일 확인 클러스터에 CA 인증서와 클러스터 정보, user에 user 정보, client key로 base64로 되어 있음 cat /etc/kubernetes/admin.conf 마스터 ..
[k8s] 29. Authentication - X509 Certs, kubectl, ServiceAccount Authentication - X509 Certs, kubectl, ServiceAccount Kubernetes API Server에 접근하는 세 가지 방법에 대해 알아보자 --> Authentication 1. X509 Client Certs Kubernetes API Server에 6443 포트로 연결되어 있음 사용자가 https 접근을 하려면 쿠버네티스 클러스터에 kubeconfig가 있어야 함 kubeconfig에는 인증서 내용이 있음 CA crt, 발급기관 인증서 Client crt, 클라이언트 인증서 Client key, 클라이언트 개인키 클라이언트가 kubeconfig의 인증서를 복사해서 가져오면 됨 최초에 발급기관, 클라이언트에 대한 개인키를 만듦 --> CA key, Client key..
[k8s] 28. Accessing API - Overview Access to the Kubernetes API 개요 Authentication 마스터 노드에 Kubernetes API Server가 있음 Kubernetes API Server를 통해서만 쿠버네티스의 자원을 만들거나 조회할 수 있음 kubectl을 통해 CLI로 자원을 조회할 수 있는 것도 Kubernetes API Server에 조회해서 정보를 가져오는 것 외부에서 Kubernetes API Server로 접근하려면 인증서를 가지고 있는 사람만 https 접근 가능 내부관리자가 kubectl 명령어로 proxy를 열어주면 인증서 없이 http로 접근 가능 kubectl은 Master Node에만 설치할 수 있는게 아니라 외부 PC에서도 설치 가능 Config 기능을 활용하면 쿠버네티스 클러스터가..
[k8s] 27. Volume - 실습 Volume 실습 동적으로 PV를 생성하는 것을 하려면 Dynamic Provisioning 솔루션을 지원하는 StorageOS를 설치해야 함 1. StorageOS 설치 설치 kubectl apply -f https://github.com/storageos/cluster-operator/releases/download/1.5.0/storageos-operator.yaml 설치 확인 kubectl get all -n storageos-operator Deployment 수정 kubectl edit deployments.apps storageos-cluster-operator -n storageos-operator spec.containers.env의 DISABLE_SCHEDULER_WEBHOOK의 Val..
[k8s] 26. Volume - Dynamic Provisioning, StorageClass, Status, ReclaimPolicy Volume에 대해 자세히 알아보자 실제 데이터는 쿠버네티스 클러스터와 Volume으로 분리돼서 관리 이전에 배운 Volume Volume은 데이터를 안정적으로 유지하기 위해 사용 Volume은 내부망에서 관리하는 것과 외부망에서 관리하는 것으로 나눌 수 있음 외부망은 아마존, 구글, 마이크로소프트와 같은 스토리지를 사용할 수 있음 내부망은 쿠버네티스를 구성하는 노드의 hostPath, local Volume 또, 내부망에서 On-Premise Solution을 설치할 수 있음 STORAGEOS, Ceph, GlusterFS와 같은게 있고 이게 알아서 노드 자원을 이용해 Volume 관리 내부망에서 또 NFS를 사용해서 다른 서버를 Volume으로 사용 가능 이전에 배운 Kubernetes Cluster..
[k8s] 25. Service - 실습 파드가 다른 서비스에 접근하기 위한 방법을 알아보자 1. DNS Service apiVersion: v1 kind: Service metadata: name: clusterip1 spec: selector: svc: clusterip ports: - port: 80 targetPort: 8080 Pod apiVersion: v1 kind: Pod metadata: name: pod1 labels: svc: clusterip spec: containers: - name: container image: kubetm/app Request Pod apiVersion: v1 kind: Pod metadata: name: request-pod spec: containers: - name: container imag..
[k8s] 24. Service - Headless, Endpoint, ExternalName Service에 대해 자세히 알아보자 우선 이전에 배운 내용을 복습 내부망에서 접속 공유기를 통해서 시작하는 아이피에서 내부망이 형성 세 대의 서버를 이용해서 Master와 Node로 쿠버네티스 클러스터가 만들어짐 클러스터에는 파드를 위한 아이피 대역(20으로 시작), 서비스를 위한 아이피 대역이 있음(10으로 시작) 파드는 20으로 시작하고, 서비스는 10으로 시작함 서비스와 파드1, 파드2는 연결되어 있음 서비스는 쿠버네티스의 서버에서만 접근 가능 --> 특정 파드에 클러스터 아이피를 단 건 내부 관리자만 접근할 수 있게 하는 용도 내부망에 여러 기기가 있을 수 있지만 서비스의 아이피를 호출할 순 없음 내부망에 있는 기기가 접근하려면 노드포트(30000) 서비스를 만들어야 함 쿠버네티스 관리자는 내부..