Kubernetes(25)
-
왜 Bamboo 에서 tekton & argocd 로 바꿔야하는가?
Bamboo tekton, argocd 장점 1.낮은 러닝커브 2.ci/cd의 결합으로 편리성 3. 아틀라시안과 연동 적합 1.tekton 의 자동복구, 힐링 기능 2. 다양한 배포 방식 가능(B/G ,rollback) → 무중단 배포 가능 3. 관리자 재량에 따라 세세한 커스터마이징 가능 4. 배포 세분화로 인한 빌드 시간 감소 5. Secret , configMap 을 통해 배포시 환경변수 설정 가능(dev,stg,prd 전부 동일한 소스 배포 가능하며, 다른 파라미터는 configMap 을 통해 편리하게 가능 ) 단점 1.장애, 모니터링에 대한 제약 발생 2. 높은 유지보수 비용 3. 반영시 영향도가 있다면, 시간 제약이 따름 : B/G , Rollback 배포 불가 1.CI/CD 모두 러닝커브발생..
2023.06.22 -
[kubernetes] pod의 DNS 접근이 안될때는 ingress를 째려보자
실사례) dns도 등록했고, pod 도 등록했고, ingress도 등록했는데 왜!! 아래처럼 접속 안되는거지..? 하면서 기존에 되는 ingress 정보랑 비교해보니 답이 나왔다. 범인은 아래 yaml 파일의 #5 에 해당하는 address 값이 비어있었다. 아래 yaml에 #1~5 가 필수적으로 채워져야 정상 접속이 되니 다음엔 빠짐없이 들어갔는지 확인해보자! 1. ingress yaml에 # 쓴 부분이 비어 있지 않은지 체크 해야함. # 기존 ingress 확인하는법 kubectl get ingress -n {namspace name} {ingress name} -o yaml # yaml 못찾겠으면 만드셈 kubectl get ingress -n {namspace name} {ingress name}..
2023.05.04 -
running pod 수정법
running 상태의 pod는 아래사항은 수정이 불가하다. - spec.container.image - spec.initContainers.image - spec.activeDeadlineSeconds -spec.tolerations 따라서, 수정하면 아래처럼 에러가난다. 해결방법은 2가지가 있다. 1. tmp 로 pod 수정 kubectl edit pod kubectl delete pod webapp kubectl create -f /tmp/kubectl-edit-ccvrq.yaml 1-2. tmp, replace로 수정 kubectl edit pod kubectl replace --force -f /tmp/kubectl-edit-ccvrq.yaml 2. newpod.yaml 생성 kubectl get..
2023.04.26 -
imperative Test
# nginx:alpine 이미지를 이용해서 nginx-pod 이름의 pod 생성 kubectl run nginx-pod --image=nginx:alpine # redis: alpine 이미지를 이용해서 redis 이름의 pod 생성 , 라벨이 tier=db 여야함. # 잘모르겠으면 kubectl run --help kubectl run redis --image=redis:alpine --labels="tier=db" # redis pod를 expose 하는 redis-service 이름의 서비스 생성 , port 가 6379 여야함. # 잘모르겠으면 kubectl expose --help kubectl expose pod redis --port=6379 --name redis-service # web..
2023.04.19 -
Load balancer
워커노드를 2개의 어플리케이션에서 같이써도, port 로 구분할 수있다. 비록, 70,71 워커노드에만 배포된다해도 서비스 덕분 클러스터의 모든 노드 port 에서 접근가능하다. -> 만약 특정 노드에만 올리는 어플리케이션이더라도, 다른 노드에서 그 어플리케이션의 port 를 쓰면 안되겠다! 도메인을 할당하는법은 뭘까? Load balance 를 하기 위해 새 vm 을 만드는거다. Load Balancer를 구성하려면 모든 load balance를 설정하고 관리하는 건 지루한 작업일수 있다. 근데, 클라우드 플랫폼(AWS,Azure 등) 은 해당 클라우드 플랫폼의 네이티브 load balancer 를 활용 할수 있다. 쿠버네티스는 특정 클라우드 공급자에 네이티브 load balancer 와 통합을 지원한..
2023.04.17 -
Cluster IP
웹 앱에서는 frontend, backend , redis(DB) 가 있다. 상호간 통신을 어떻게 할까? pod는 모두 할당된 ip 주소가 있지만, 고정이 아니다. service 를 통해서 pod를 하나로 묶고 하나의 인터페이스를 통해 단체 pod에 접속할 수있다. 요청은 무작위 한 pod 로 전달된다. 이러한 서비스 유형을 Cluster IP 라고 한다. 서비스인데, spec 에 type이 ClusterIP 다. pod defintion.yml 에서 metadata 의 labels 부분을 떼다가 selector에 넣어주면 끝! # 생성 kubectl create -f service-defintion.yml # 조회 kubectl get services
2023.04.17