본문 바로가기

⭐ Kubernetes & EKS

(140)
Hpa 삭제 후 재 생성 # Hpa를 삭제 후 재 생성하는 방법 - 모든 hpa 삭제 명령어 kubectl delete hpa --all - hpa 생성 명령어 (CPU의 평균 사용률이 30% 이상일때 스케일 아웃 되도록 설정, 최소는1개이고 최대는 10개 까지) k8s-master-node@k8smasternode-Virtual-Machine:~/yaml/metrics-server$ kubectl delete hpa --all horizontalpodautoscaler.autoscaling "nginx-deployment-01" deleted k8s-master-node@k8smasternode-Virtual-Machine:~/yaml/metrics-server$ kubectl autoscale deployment nginx-..
k8s 새로운 namespace를 생성하고, nginx deply 후에 hpa를 활성화 해보자 1. 새로운 namespace를 생성 k8s-master-node@k8smasternode-Virtual-Machine:~$ kubectl create ns nginx-hpa-test 2. 기본(default) namespace를 변경 - 기본 namespace 확인 : nginx로 확인 > nginx-hpa-test로 기본 namespace를 변경 k8s-master-node@k8smasternode-Virtual-Machine:~$ kubectl config view --minify | grep namespace namespace: nginx - 기본 namespace 변경, 기본 namespace가 nginx-hpa-test로 변경된것 확인 k8s-master-node@k8smasternode-Vi..
k8s 쿠버네티스 기본 namespace 변경하기 Kubernetes를 사용할때 Kubectl을 통해 클러스터를 제어한다. pod를 생성할때 namespace를 지정할 때 -n 을 사용하는데 지정하지 않으면 기본 namespce로 실행이된다. 기본 namespace의 이름은 default 로 되어 있는데, 주로 사용하는 namespace를 바꿔야 할 때도 있다. 이때 다음 명령어로 기본 namespace를 변경하면 된다. - 기본 namespace를 변경해 보자. k8s-master-node@k8smasternode-Virtual-Machine:~$ kubectl config set-context --current --namespace=nginx Context "kubernetes-admin@kubernetes" modified. - 변경한 namesp..
ClusterIP 에서 Nodeport 로 변경하는 방법 # 클라우드 네이티브가 아닌 로컬 환경에서 작업을 해야하는 경우가 많다. (비용때문에...) 서비스를 생성하면 기본은 ClusterIP를 가지고 생성이 된다. 이런경우 외부에서 접근이 가능하지 않으므로 실제 서비스를 웹어서 구현하기가 어렵다. (쿠린이라 정확하지않을 수 있다.) 그래서 NodePort를 활용하여 서비스 접근을 하게된다. - 그래서 ClusterIP를 Nodeport로 변경하는 방법에 대해서 알아보자. # 환경설명 일단 현재 nginx pod 5개가 구동중에 있다. 문어가 5개의 pod를 관리하고 있는 중이다. 1. 서비스 및 pod 조회 - 타입이 클러스터IP로 정의 되어있는것을 확인 할 수있다. k8s-master-node@k8smasternode-Virtual-Machine:~$ ku..
쿠버네티스 로드밸런서 정보 확인하기 (AWS) # 쿠버네티스에서 서비스 정보를 확인한다. 확인하면 EXTERNAL-IP가 존재하는데 이 URL이 바로 외부에서 접근 가능한 URL 주소이다. PORT는 80:30182 라고 등록되어 있는데 80은 외부에서 접근하는 PORT이고, 30182는 내부 객체가 접근하는 주소라고 볼 수 있다. ec2-user:~/environment/yaml $ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.100.0.1 443/TCP 7m59s tomcat-lb LoadBalancer 10.100.119.135 aadd5f0b986404818a2c492e92ceb838-1706978254.ap-northeast-2.elb..
쿠버네티스 alias 기능 활성화 # alias 기능을 활성화 하여 조회 시 명령어를 줄여보자 우리는 항상 node를 조회하거나 pod를 조회시 kubectl get nodes 및 kubectl get pod등의 명령어를 사용하여 조회를 수행하였다. 하지만 항상 kubectl 이라는 기본 명령어를 치기가 너무 귀찮아 질때가 있다. 리눅스에서도 존재하는 alias 기능을 활성화 하고 간단하게 조회하는 방법에 대해서 알아보자. ec2-user:~/environment $ echo "source
쿠버네테스 api 버전 종류 쿠버네티스 apiVersion 설명 v1 쿠버네티스에서 발행한 첫 stable release API (대부분의 api가 포함되어 있음) apps/v1 쿠버네티스의 common API 모음, Deployment, RollingUpdate, ReplicaSet을 포함 autoscaling/v1 pod의 autoscale 기능을 포함하는 API, 현재는 CPU metric을 사용한 scaling만 가능 (추후에 alpha, beta version에서 memory, custom metric으로 scaling 기능 추가예정) batch/v1 배치 프로세스, job-like task를 위한 배포 api batch/v1beta1 batch/v1에서 cronJob으로 job을 돌리는 api가 추가 certivicate..
실수로 keypair 파일을 삭제 했을 경우 # EKS 실습을 하던중 실수로 키페어를 삭제했다. 더이상 EKS 및 오토스케일링 그룹에서 스케일 아웃과 스케일 인이 정상적으로 진행되지 않고, 오류를 내뱉고 있다. - 해결방법은 생각보다 매우 간단했다. 순간적으로 키페어가 없으니 초기 구성부터 다시 해야하나 싶은 생각 이었는데, 결론적으로는 해당 eksworkshop에 대한 키페어만 새로 생성해주면 되는 아주 간단한 작업 이었다. - EC2 대시보드에서 키페어를 클릭하자 - 우측상단 키페어 생성을 클릭하자 - 키페어의 이름과 간단한 설정을 한뒤 생성을 클릭하여 키페어를 생성한다. - 끝이다. 생성 후 오토스케일링 및 EKS 노드 생성도 원활히 진행되는 것을 확인 할 수 있다.