Container 썸네일형 리스트형 [K8S] Network & CNI Networking Model모든 Pod는 IP 주소를 가지고 있어야 한다.모든 Pod는 같은 노드 안에서 다른 Pod와 통신할 수 있어야 한다.모든 Pod는 같은 IP주소를 통해 NAT없이 다른 노드의 모든 파드와 통신할 수 있어야 한다.IP와 Subnet이 어디에 속해있는지는 상관이 없다.# 각 노드의 IP 확인 가능(INTERNAL-IP)controlplane ~ ➜ kubectl get nodes -o wideNAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIMEcontrolplane .. 더보기 [K8S] Deploy a Kubernetes Cluster using Kubeadm Kubeadm은 쿠버네티스 클러스터를 빠르고 쉽게 설치하고 관리할 수 있도록 도와주는 CLI 도구이다.주로 쿠버네티스 컨트롤 플레인(마스터 노드)과 워커 노드를 초기화하고, 클러스터를 설정하는 역할을 한다. 주요 기능 ✅ Kubernetes 클러스터 초기화 (init)✅ 워커 노드 추가 (join)✅ 클러스터 토폴로지 구성 및 인증서 관리✅ 업그레이드 (upgrade) 및 리셋 (reset) 지원✅ Kubelet 및 CNI(Container Network Interface) 설정 가능 Vagrant 이용한 설치 (강의 참조)$ git clone https://github.com/kodekloudhub/certified-kubernetes-administrator-course.git참고 문서: https.. 더보기 [K8S] Network Policy NetworkPolicy는 네트워크 트래픽을 제어하고 관리하는 데 사용되는 리소스이다. 이를 통해 파드 간의 통신을 허용하거나 차단함으로써 클러스터 내의 네트워크 보안을 강화할 수 있다. 기본적으로 쿠버네티스는 모든 Pod 간 네트워크 연결을 허용하지만, NetworkPolicy를 사용하면 특정 트래픽만 허용하고 나머지는 차단할 수 있는 것이다.NetworkPolicy는 Pod에만 적용 가능하다.기본적으로 NetworkPolicy가 없으면 모든 네트워크 트래픽이 허용된다.NetworkPolicy를 지원하는 솔루션(Plugin)Kube-routerCalicoRomanaWeave-netNetworkPolicy를 지원하지 않는 솔루션 : FlannelNetworkPolicy 조회controlplane ~ ➜ .. 더보기 [K8S] Security Context 컨테이너와 호스트는 같은 커널을 공유해서 완전히 isolate 되어있지는 않고, Linux에서 namespace를 이용해서 Isolate된다. 이러한 환경에서 쿠버네티스의 "Security Context"는 파드(Pod) 또는 컨테이너(Container)에서 사용할 수 있는 보안 설정을 정의한다. Pod의 user ID 변경하기# Pod에서 사용하고 있는 user 확인controlplane ~ ➜ kubectl exec ubuntu-sleeper -- whoamiroot# User 변경하기controlplane ~ ➜ kubectl get pod ubuntu-sleeper -o yaml > ubuntu-sleeper.yamlcontrolplane ~ ➜ vi ubuntu-sleeper.yaml s.. 더보기 [K8S] Image Security Image Security 민감한 인증 정보를 안전하게 관리하면서 필요한 이미지를 적절하게 가져올 수 있는 방법이 있다.Google의 Registry : gcr.io/ 만약 내부에서만 사용되어야 하는 image라면 Internal Registry를 만들어서 사용하면 되며, GCP, AWS 등의 CSP들은 기본적으로 private registry를 제공한다. 이러한 Private Registry에서 이미지를 가져오려면 인증 정보가 필요한데, 인증 정보는 Secret을 통해 관리할 수 있다. ( Secret은 docker-registry 타입을 사용하여 생성된다.) Secret은 프라이빗 컨테이너 이미지 레지스트리에 접근하기 위한 인증 정보를 안전하게 저장하고 사용할 수 있게 해준다. Secret을 사.. 더보기 [K8S] Service Account(SA) Service Account는 클러스터 내에서 애플리케이션이 실행될 때 사용되는 특별한 종류의 계정이다. 일반 사용자 계정과 달리, 서비스 계정은 사람을 위한 것이 아니라 애플리케이션이나 서비스를 위한 것이다. 이 계정은 Kubernetes API 서버와 상호 작용할 때 인증에 사용된다. 기본 제공: Kubernetes는 각 네임스페이스에 기본 서비스 계정을 자동으로 생성한다. 이 기본 서비스 계정은 default라는 이름을 가지며, 네임스페이스 내에서 실행되는 모든 파드는 기본적으로 이 계정을 사용한다.인증: 서비스 계정은 토큰을 사용하여 Kubernetes API에 인증합니다. 이 토큰은 파드 내의 파일 시스템에 자동으로 마운트되며, 애플리케이션은 이를 사용하여 API 요청을 인증할 수 있다.권한: .. 더보기 [K8S] ClusterRole/ClusterRoleBinding ClusterRole이란, 쿠버네티스 리소스에 대한 권한을 정의하는 역할이다.네임스페이스와 관계없이 클러스터 전역에서 작동하거나, 특정 네임스페이스의 리소스에 대해 권한을 정의할 수 있다.리소스, API 그룹, 허용된 작업(verbs) 지정필요한 최소한의 권한만을 부여해야하며, 클러스터 전역 권한이 필요하지 않으면 Role과 RoleBinding을 사용한다.정의apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata: name: pod-readerrules:- apiGroups: [""] resources: ["pods"] verbs: ["get", "watch", "list"]ClusterRoleBinding이란, 정의된 ClusterR.. 더보기 [K8S] api-resources kubectl api-resources는 쿠버네티스 클러스터에서 지원하는 API 리소스 목록을 확인하는 명령어 $ kubectl api-resourcesNAME SHORTNAMES APIGROUP NAMESPACED KINDbindings true Bindingcomponentstatuses cs .. 더보기 이전 1 2 3 4 ··· 8 다음