k8s85 [k8s] kube-proxy kube-proxy default mode는 iptables API로 service를 생성하면 그 service의 목적지에 따른 endpoint(진입점)을 iptables rule로 만들어 달라고 kernel에게 요청함 worker node마다 1개씩 존재 nodeport를 생성하면 iptables의 rule를 통해서 외부로 서비스 될 수 있게 port listen 3가지 mode : user space mode iptables mode IPVS mode [hands - on] K8s service 동작 vi deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: web spec: replicas: 3 selector: matchLabe.. 2023. 4. 10. [K8s] Network Container Network Model Docker0 Virtual ethernet bridge : 172.17.0.0/16 L2 통신 기반 Container 생성 시 veth 인터페이스 생성(sandbox) 모든 container는 외부 통신을 docker0를 통해 진행 Container running 시 172.17.X.Y로 IP 주소 할당 Container Network Interface(CNI) K8s cluster 환경에서 multi-host에서 container간의 통신이 가능하게 하기 위한 목적 컨테이너 간의 네트워킹을 제어할 수 있는 플러그인을 만들기 위한 표준 https://kubernetes.io/docs/concepts/cluster-administration/networking/.. 2023. 4. 10. [k8s] Persistent Volume & Persistent Volume Claim PV(Persistent Volume) K8s cluster 외부 storage와 연결을 담당하는 리소스 https://kubernetes.io/docs/concepts/storage/persistent-volumes/ 참고 PVC(Persistent Volume Claim) PV와 pod를 연결하기 위한 리소스 https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims 참고 ❗ 역할을 나눈다면, 스토리지 지식이 있는 쿠버네티스 클러스터 관리자 또는 스토리지 관리자는 PV 리소스를 생성해 스토리지와 연결해 두고, 파드 개발자는 PVC를 생성해 자신의 파드 및 관리자가 제공해 준 PV와 연결해 파드에서 볼륨을 .. 2023. 4. 3. [K8s] Storage NFS NFS 서버가 공유하고 있는 데이터 디렉토리를 worker node의 pod들이 access할 수 있도록 지원 사전준비 NFS 서버는 application이 사용할 공유 디렉토리를 지원하고 있어야 함. Worker node는 NFS 클라이언트가 되어서 NFS Server가 지원하는 공유 폴더에 접근할 수 있어야 함. definition volumes: - name: webdata nfs: server: nfs.server.name path: /share/dir/path [Hands - on] NFS 서버 설치 및 설정 별도의 nfs 서버에서 진행 apt-get install -y nfs-common nfs-kernel-server rpcbind portmap 공유할 디렉터리 설정 mkdir -p /sha.. 2023. 3. 27. [k8s] Storage emptyDir 및 share volume emptyDir volume 빈 디렉토리로 시작 Pod 내부에서 실행중인 application은 필요한 모든 파일 작성 Pod를 삭제하면 volume의 내용은 손실 동일한 pod에서 실행되는 컨테이너 간에 파일을 공유할 때 유용 https://kubernetes.io/docs/concepts/storage/volumes/#emptydir참고 [Hands - on] pod 생성 및 확인 vi empty.yaml apiVersion: v1 kind: Pod metadata: name: web-empty spec: containers: - image: nginx:1.14 name: nginx volumeMounts: - name: html mountPath: /usr/share/nginx/html volume.. 2023. 3. 20. [K8s] Storage 개념 및 hostPath Volume은 K8s storage의 추상화 개념 Container는 pod에 binding 되는 volume을 mount하고 마치 local filesystem에 있는 것처럼 storage에 접근 https://kubernetes.io/docs/concepts/storage/volumes/ 참고 K8s storage definition volumes: #node에 존재 - name: html hostPath: path: /hostdir_or_file container 단위로 mount volumeMounts: - name: html mountPath: /usr/share/nginx/html [Hands - on] node1,2,3에 각각 /webdata/index.html 생성 각 node를 구분할 수.. 2023. 3. 14. [k8s] 인증과 권한 관리 - 권한편 권한관리 특정 유저나 ServiceAccount가 접근하려는 API에 접근 권한을 설정 권한 있는 User만 접근하도록 허용 권한제어 Role 어떤 API를 이용할 수 있는지의 정의 K8s의 사용권한을 정의 지정된 namespace에서만 유효 verbs : create : 새로운 리소스 생성 get : 개별 리소스 조회 list : 여러 건의 리소스 조회 update : 기존 리소스 내용 전체 업데이트 patch : 기존 리소스 중 일부 내용 변경 delete : 개별 리소스 삭제 deletecollection : 여러 리소스 삭제 RoleBinding User/Group 또는 ServiceAccount와 Role을 연결 .. 2023. 3. 6. [K8s] 인증과 권한 관리 - 인증편 API 접근제어 API 인증요청 User/Group Service Account(Application) Authentication user 또는 application이 API에 접근을 허가 받는 과정 인증방식 ; 클라이언트 인증서, 베어러 토큰(bearer token), HTTP 기본인증 지원 Authoriztion RBAC 모델 기반 요청 ID에 적절한 role이 있는지 확인 Admission Control 요청이 올바른 형식인지 판별 요청이 처리되기 전에 수정사항을 잠재적으로 적용 API 인증 API 서버에 접근하기 위해서는 인증 작업 필요 일반 사용자(Human User) 또는 그룹(Group) Cluster 외부에서 k8s를 조작하는 사용자로, 다양한 방법으로 인증 kubernetes-admin .. 2023. 2. 27. 이전 1 2 3 4 5 6 7 8 ··· 11 다음