본문 바로가기

INFRA/Operation81

쿠버네티스 이론 STEP14 Resource Management ABTCEFG♪ 안녕하세요, 여러분! BTC_김쿼카입니다. 이번 시간에는 쿠버네티스의 리소스 관리에 대해 알아보는 시간을 가질게요. 쿠버네티스에서는 pod를 실행하기 위해 node의 리소스를 사용합니다. 스케줄러는 pod를 자원의 여유가 있는 node에 배포하게 되는데 이때 사용되는 기준은 각 node의 cpu, memory의 사용량 등이 대표적입니다. 리소스 단위 cpu : 1000m(밀리 코어) == cpu : 1 Core memory : 256Mi == memory : 256Mb apiVersion: v1 kind: Pod metadata: name: resource-limit-pod labels: name: resource-limit-pod spec: containers: - name: nginx.. 2022. 10. 12.
쿠버네티스 이론 STEP13 Scheduling 3 Cordon & Uncordon & Drain pod- scheduling 정책을 변경할 수 있는 명령어 kubectl cordon, drain, taint cordon kubectl cordon 특정 노드를 선택하여 스케줄 대상에서 제외시킴. 현재 노드에 배포된 pod는 그대로 유지하면서 추가적인 pod의 배포를 제한하는 명령어. cordon명령어를 실행하면 선택한 특정 노드가 SchedulingDisabled 상태가 됨 uncordon kubectl uncordon 특정 노드를 SchedulingDisabled 상태를 제거하고 노드에 pod가 정상적으로 스케줄링 될 수 있도록 복구하는 명령어. drain kubectl drain 선택한 특정 노드가 SchedulingDisabled 상태가 될 뿐만 아니라 노드에 남아있는 pod를 모두 삭제하고 재.. 2022. 10. 5.
Terraform 리소스에 대한 이해 - AWS 2편 안녕하세요! 하씨가문의 영광입니다. 이번에는 Terraform 리소스 AWS 환경에서의 2편인데요!! 한번 시작해볼까요! 고고~~ aws_eip EIP는 Elastic IP로 동적 클라우드 컴퓨팅을 위해 고안된 고정 Public IPv 주소 입니다 resource "aws_eip" "example_eip" { vpc = true network_interface = aws_network_interface.multi-ip.id associate_with_private_ip = "10.0.0.11" } resource "aws_eip" "(리소스이름)" { } 블록내의 인수는 다음과 같습니다. 특이하게도 여기에서는! 모든 인수들이 선택 사항 입니다. address : EC2 BYOIP 풀의 IP 주소입니다. .. 2022. 10. 4.
Terraform 리소스에 대한 이해 - AWS 3편 안녕하세요! 하씨가문의 영광입니다! 지난주 Terraform AWS EC2까지 다루었는데요! 이번에는 AWS의 DB를 다뤄보도록 하겠습니다:) Don't have a good day, Have a great day! ▶ 목차 aws_db_subnet_group aws_db_instance aws_db_security_group aws_db_parameter_group 1. aws_db_subnet_group resource "aws_db_subnet_group" "default" { name = "main" subnet_ids = [aws_subnet.frontend.id, aws_subnet.backend.id] tags = { Name = "My DB subnet group" } } 필수 설명 옵션 .. 2022. 10. 4.
쿠버네티스 이론STEP12 Scheduling 2 Affinity & AntiAffinity ABTCEFG♪ 안녕하세요, 여러분! BTC_뚜벅이입니다. 지난 주 taint와 toleration에 대해 알아보았는데요. 이번 주엔 Affinity와 AntiAffinity에 대해 알아보도록 할게요. 1. Affinity와 AntiAffinity란? 특정 Node나 Pod와의 거리를 조절하는데 사용합니다. 특정 Pod나 Node끼리 가까이 스케줄링 하고 싶은 경우 Affinity를, 멀리 스케줄링 하고 싶은 경우 AntiAffinity를 사용합니다. 1-1. NodeAffinity Pod가 특정 Node에 할당되길 원할 때 사용합니다. nodeSlector와의 차이점은 옵션을 사용해서 소프트하게 조절이 가능합니다. 여기서 말하는 옵션이란 라벨 선택을 강제하거나(requiredDuringSchedulin.. 2022. 10. 4.
쿠버네티스 이론STEP11 Scheduling 1 Taint & Toleration ABTCEFG♪ 안녕하세요, 여러분! BTC_김쿼카입니다. 쿠버네티스의 스케줄링에 대해 알아보는 첫번째 시간! 오늘은 taint와 toleration에 대해 알아보도록 해요. taint Node에 적용되는 속성으로, Node에 스케줄링될 Pod를 제한할 수 있는 기능을 제공함 노드마다 설정 가능하며, 설정한 노드에는 pod가 스케줄 되지 않음 taint 옵션 NoSchedule toleration이 없으면 pod가 스케줄되지 않음 기존에 실행되던 pod에는 적용되지 않으며 앞으로 실행될 Pod에 대해서만 스케줄링 제한 PreferNoSchedule toleration이 없으면 pod가 스케줄되지 않음 기존 실행 중인 Pod에는 적용되지 않으며, 앞으로 생성될 Pod도 스케줄링 되는 것을 선호하진 않지만 .. 2022. 9. 27.
Terraform 리소스에 대한 이해 - AWS 1편 안녕하세요! 하씨가문의 영광입니다! 이때까지 Terraform 리소스 - Azure편을 5편까지 다루었습니다! 이번에는 AWS를 다뤄보며 Azure와의 차이점을 살펴보면 좋을 거 같아요:) Don't have a good day, Have a great day! ▶ 목차 AWS공급자 VPC Subnet Route_table 1. AWS 공급자 terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 4.0" } } } # Configure the AWS Provider provider "aws" { region = "ap-northeast-2" } 자주 사용하는 인수들을 정리해보자면, 필수 설명 옵션 설명 access_.. 2022. 9. 19.
쿠버네티스 이론 STEP10 Cluster Upgrade i kubernetes는 각 컴포넌트마다 서로 다른 버전을 가지고 있을 수 있습니다. 이로 인해 각 컴포넌트마다 업데이트가 가능한데 Kubernetes 서포트는 최신 3개의 버전에만 가능하기 때문에 버전을 빠르게 업그레이드 하는 것이 필요합니다. 또한 v1.10 > v1.11 > v1.12 로 차례로 올리는 것이 좋은 방법입니다. Cluster Upgrade 순서 1. 기본 컨트롤 플레인 노드 업그레이드 2. 추가 컨트롤 플레인 노드 업그레이드 3. 워커 노드 업그레이드 필수 조건 1. 모든 노드가 Ready 상태여야 함 2. swap 비활성화 3. (필요 시) 클러스터 백업 - kubeadm upgrade 4. Node draining 필요 1. ControlPlane Upgrade 업그레이드 순서 :.. 2022. 9. 16.