본문 바로가기

k8s85

[AWS] AWS EKS Node Drain 안녕하세요 비티시보이즈입니다. 오늘의 주제는 EKS Node Drain입니다. Kubernetes Node Drain이란? kubectl drain은 Node 관리를 위해서 지정된 Node에 있는 Pod들을 다른곳으로 이동시키는 명령입니다. Node에 있는 Pod들을 다른 Node로 옮기고, Drain을 한 Node에 Cordon을 하여 drain 후에도 다시 스케줄링 되지 않도록 해주는 명령입니다. Node Drain 순서 Node를 Drain하는 순서는 다음과 같이 진행됩니다. 먼저 drain하려는 노드의 이름을 식별합니다. 다음을 사용하여 클러스터의 모든 노드를 나열할 수 있습니다. kubectl get nodes 다음으로 Kubernetes에 노드를 비우도록 지시합니다. kubectl drain .. 2023. 8. 17.
[K8S] Service 베하~! BTC_녹차공원 팀의 하동녹차 입니다. Kubernetes Service에 대해 알아보겠습니다! 쿠버네티스 서비스(Service) 쿠버네티스 서비스(Service)는 쿠버네티스 클러스터 내에서 실행 중인 파드에 접근하기 위한 추상화된 리소스입니다. 파드는 유동적으로 생성되고 삭제되며 IP 주소가 변경될 수 있기 때문에, 직접 파드의 IP 주소로 접근하는 것은 번거로운 작업입니다. 서비스는 이러한 문제를 해결하여 파드에 고정된 가상 IP 주소를 제공하고, 그 IP 주소를 통해 파드에 접근할 수 있도록 합니다. 이를 통해 클라이언트나 다른 파드가 서비스를 통해 파드와 통신할 수 있습니다. 쿠버네티스 서비스(Service) 기능과 특징 1. 클러스터 내부 서비스: 기본적으로 서비스는 클러스터 내부에서.. 2023. 8. 1.
[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.