INFRA/DevOps146 [K8S] NetworkPolicy 베하~! BTC_녹차공원 팀의 민물공원 입니다. 이번주는 NetworkPolicy에 대해 알아보겠습니다! NetworkPolicy NetworkPolicy는 쿠버네티스에서 제공하는 일종의 방화벽 정책으로 Pod가 서로 통신할 때 방화벽 설정을 할 수 있어요. Pod에 대해 인바운드(Inbound traffic), 아웃바운드(Outbound traffic)에 대해 설정을 해줄 수 있답니다 !! Network Policy 에는 Inbound 에 해당하는 ingress 설정과 Outbound에 해당하는 Egress 설정이 있어요. Inbound 는 외부에서 특정 Pod의 내부로 들어오는 트래픽에 대한 방화벽 설정으로 어떤 트래픽에 Pod로 들어올것인지 설정하는 부분이랍니다. Outbound 는 특정 Pod에서.. 2023. 8. 1. [K8S] Node Upgrade 베하~! BTC_녹차공원 팀의 민물공원 입니다. 이번주는 Node Upgrade 하는 방법에 대해 알아보겠습니다! Node Upgrade 쿠버네티스는 활발하게 유지 보수가 되며 클라우드 CSP (AWS, Azure, GCP) 들의 호환성 개선도 포함되기 때문에 이에 맞춰 주기적으로 업그레이드를 해주어야합니다. 쿠버네티스에서는 업그레이드 할 때 한 버전씩만 업그레이드 하는 것이 권장되고있습니다. 만약 v1.10에서 v1.13으로 업그레이드를 해야한다면 v1.10 -> v1.13이 아닌 v1.10 -> v1.11 -> v1.12 -> v1.13 으로 업그레이드를 해야합니다. 실무에서 운영중인 클러스터를 업그레이드 해야 할 때 안전하게 업그레이드 하는 방법이 무엇일까요? 1. 새로운 Node를 추가할 경우 -.. 2023. 7. 20. [K8S] Node Schedule 베하~! BTC_녹차공원 팀의 민물공원 입니다. 이번주는 Node Schedule 정책에 대해 알아보겠습니다! kubectl 은 노드의 pod-scheduling 정책을 손쉽게 변경할 수 있도록 다양한 명령어를 제공해줘요. drain, cordon, uncordon 을 지원해주는데 각각 알아보아요 cordon cordon은 지정된 node에 더 이상 pod들이 스케줄링되지 않도록 해요. 위에서 볼 수 있듯이 node01은 cordon 명령어를 통해 SchedulingDisabled 상태가 되었어요. test3라는 새로운 pod를 생성하니 node01이 아닌 controlplane에 새로운 pod가 스케줄링 되었답니다. drain drain은 지정된 node에 존재하는 모든 pod를 제거하여 노드를 비우고.. 2023. 7. 6. [K8S] role & rolebinding 베하~! BTC_녹차공원 팀의 민물공원 입니다. 이번주는 role 과 rolebinding에 대해 알아보겠습니다! role 이란? role(역할)은 특정 API나 리소스를 이용할 수 있는지 권한을 정의해 놓은것이랍니다. 쉽게 말해, 쿠버네티스의 사용권한을 정의해 놓은것이예요. role은 지정된 네임스페이스에서만 유효하답니다. role에서 verbs 라는게 있어요. verbs는 어떤 동작을 하는지 설정하는 부분이랍니다. verbs에는 여러가지가 있는데 자주 쓰이는 것들을 같이 알아보아요~ create : 새로운 리소스 생성 get : 개별 리소스 조회 list : 여러 건의 리소스 조회 update : 기존 리소스 내용 전체 업데이트 patch : 기존 리소스 중 일부 내용 변경 delete : 개별 리소.. 2023. 6. 18. [k8s] Kubernetes AutoScaling Kubernetes AutoScaling 1. Cluster level scalability 기존의 worker node의 resource가 부족할 경우 worker node를 자동으로 확장 GCP, AWS 및 Azure와 같은 cloud infrastructure를 통해서 사용 OpenStack의 Auto Scaling Kubernetes cluster Cluster Autoscaler (CA) Pod가 node 리소스를 할당 받지 못해 pending 될 때 worker node를 확장 Node pool의 min/max를 기준으로 그 범위 내로 node 확장 할당된 node가 장시간 충분히 활용되지 못하면 node를 해제 10초마다 불필요한 node 확인, 10분간 적은 리소스 유지하면 scale do.. 2023. 5. 2. [K8s]DNS K8s DNS Service 및 pod용 DNS Cluster에서 실행하는 모든 pod가 사용할 수 있도록 구성 DNS를 통해 service와 pod access service_name.namespace.svc.cluster.local Pod-IP-Address.namespace.pod.cluster.local kube-dns service 작동 확인 kubectl get service --all-namespaces NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE default kubernetes ClusterIP 10.96.0.1 443/TCP 4d20h kube-system kube-dns ClusterIP 10.96.0.10 53/UDP,53/TCP.. 2023. 4. 17. [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. 이전 1 2 3 4 5 6 7 8 ··· 19 다음