쿠버네티스에서 Pod는 애초에 쓰고 버리고 새롭게 시작할 수 있게 설계되어 있다. Pod의 IP주소는 기동시 부여되고, 종료시 회수되기 때문에 Pod가 죽고 다시 살아날 때 IP주소가 변경된다. 그렇기 때문에 Pod의 IP주소로 Pod에 접근할 수 없다. 그래서 Pod에 접근하려면 Service를 사용해야 한다. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR clusterip-nginx ClusterIP 10.104.201.2 80/TCP 5m34s app=nginx-app 위와 같은 서비스가 있다고 해보자. ClusterIP로 된 Service이다. 이 서비스는 app=nginx-app인(key-value 구조) Pod들에 접근할 수 있는 서비스이다. ..
내가 쿠버네티스 클러스터에 배포해야하는 애플리케이션은 profile yaml파일이 굉장히 많았고, 이 profile을 동적으로 선택하는 것이었다. 로컬에서 돌릴 때는 configuration에서 그냥 값을 입력해주면 되지만 쿠버네티스 클러스터에 배포하기 위해서는 어느 시점에선가 active profile을 결정해줘야 했는데, 어떻게 해야할지 찾아보다가 오늘 해결했다. 내가 생각했을 때 프로파일을 결정할 수 있는 타이밍은 크게 두 가지가 있었는데, 하나는 docker 이미지로 만들 때와 다른 하나는 deployment로 파드를 만들 때이다. 배운 내용으로는 파드의 환경변수를 관리하는 게 configMap이니까 파드를 만들 때 configMap으로 넣어줄 수 있는지 알아봤는데, 내가 알아본 것으로는 그렇게 ..
GKE에서 docker hub에 있는 private 이미지를 pull하려면 인증이 필요하다. 이 인증을 어떤 타이밍에 어떻게 해주느냐가 관건인데, Secret을 만들고 Pod나 Deployment 생성시 Secret을 걸어주면 된다. 시크릿 생성하기 kubectl create secret docker-registry regcred --docker-server= --docker-username= --docker-password= --docker-email= # : 프라이빗 도커 저장소의 FQDN. 도커허브는 https://index.docker.io/v2/ 이다. # : 도커 사용자의 계정 # : 도커 사용자의 비밀번호 # : 도커 사용자의 이메일 주소 시크릿과 Pod 혹은 Deployment 연결하기 P..
나처럼... 정말 아무 것도 모르는 왕왕초보 개발자가 강의를 들을까봐, 혹시나 하필 구축한 실습환경이 GKE일까봐 정리해둔다. 본 강의에서는 쿠버네티스를 다룰 때 주로 대시보드를 이용한다. 물론 대시보드로 하다보니 이해하긴 쉽지만 대시보드로도 해결되지 않는 경우가 왕왕 있었다. 대시보드로 해결되지 않을 때는 cmd창에서 작업하면 된다. GCP로 실습환경을 구축하고 SDK 설치 및 설정까지 완료하면 cmd창에서 kubectl로 쿠버네티스를 접근할 수 있다. 예를 들어, 대시보드의 경우 생성버튼(오른쪽 위 + 버튼)을 눌러서 [Create from input]에서 yaml파일 내용을 입력해서 생성할 수도 있지만, 먼저 원하는 경로에 yaml파일을 만들고, 그 경로에서 아래의 명령어를 실행해서 생성할 수도 있..
인프런 강의를 듣고 있는데, 아무래도 강의에서 권장하는 실습환경이 아니다보니 막힐 때가 한 두번이 아니다... 😭 이번에는 파드를 만들고, 그 파드와 연결된 서비스를 만들어서 서비스의 IP로 접속해서 파드 컨테이너가 제대로 작동한다는 것을 확인하는 것이었다.(Getting started - Kubernetes - 실습) 아니 근데... 강의자분은 서비스만들 때 아래의 부분처럼 써서 서비스를 만들어서 IP에 접근하는데 나는 저렇게 할 경우 접근하지 못하는 문제가 있었다. ... externalIPs: - 192.168.0.30 파드는 IP를 가지고 있긴 하지만 파드는 장애때문에 얼마든지 재생성될 수 있다. 그럴 때마다 IP가 달라지기 때문에 이 파드와 클라이언트를 연결하고자 하면 서비스가 필요하다. 서비스..
인프런의 "대세는 쿠버네티스" 강의를 듣기 시작했는데, 거기서 구축하는 여러 가지 환경 중에 나는 GCP를 이용한 쿠버네티스 환경을 구축했다. 그런데... 본 강의에서는 dashboard를 사용해야하는데, dashboard에 접근이 안되는 문제가 생겼다. 원래 --enable-skip-login을 추가해주면 그냥 skip 버튼만 눌렀을 때 대시보드가 뜨는데, 나는 404에러가 발생했다. 그래서 하는 수 없이 토큰으로 로그인하는 걸로 결정했다. 여기를 참고해서 토큰을 얻어서 로그인했고, 대시보드에 들어갔는데 모든 권한이 forbidden이어서 아래와 같이 입력해서 해결했다. kubectl create clusterrolebinding --user system:serviceaccount:default:def..