본문 바로가기

Infra/[K8S & Docker]

(37)
[k8s] 쿠버네티스 쿠버네티스 : 컨테이너 기반 오픈소스 가상화 프로젝트 기존 애플리케이션과 클라우드 네이티브 애플리케이션과의 차이는 대략적으로 이렇다. 이론을 아는건 지루한 일이지만, 뭔가를 시작하기전에 이론에 대해서 알고 시작하면 조금 더 좋다. 뭐 잘 알다 싶이, 클라우드 네이티브로 하면, 파드 개수를 조절해서 애플리케이션의 개수를 늘리거나 스케일에 좀 더 유연하고 이를 인그레스로 분산하고 뭐 등등 여러가지 장점이 있다. 이론은 귀찮으니, 이정도만 알고 바로 실습 ㄱ
[k8s] kubectl 명령어 모음 kubectl 명령어 모음이다. 적어두고 유용하게 ...두고두고 사용하자 설명이 필요한 것만 설명을 적어놓겠다. kubectl get all (pods,svc,deployments) kubectl get ing kubectl config view kubectl get pods -o wide (더 많은 내용 조회) kubectl get pod my-pod -o yaml ( 파드의 yaml조회) kubectl get nodes kubectl get -o jsonpath={..spec.containers[*].name}; echo (특정 파드의 컨테이너 이름 조회) 1. kubectl get namespaces 2. kubectl config set-context --current --namespace -> ..
[Docker] Docker 의 기초와 Swarm에 대해서 도커는 우선 뭐 잘 알다 싶이 컨테이너 기술이다. Docker 에 대한 기본적인 장점과 구조를 알고싶다면 아래글을 먼저 보고오는 것을 추천한다. https://devboi.tistory.com/472 [Docker] Docker Study 기본 Docker 개념 Docker 는 개발자와 시스템 관리자가 컨테이너 기술을 사용하여 어플리케이션을 개발, 배포 및 실행하기 위한 플랫폼이다. 일반적으로 리눅스에서 사용되는 컨테이너 기술을 사용하여 devboi.tistory.com 우선 다음으로는 Docker의 기본적인 명령어와 Swarm과 관련된 공부를 해보자 1. Docker 기본 명령어 및 기본 지식 docker images : 도커이미지 목록 보기 docker search [이미지 이름] : 도커이미지 검색..
Docker compose ip 고정하는법 실제로 사용하는 network하위에 ip adress를 적어주면 된다. docker inspect container id 를 적게 되면 해당 아이디를 알수있는데 ipv4가 아니라 다른 값으로도 할수있다. 무튼 정해진 네트워크에서 해당 고정된 컨테이너로 아이피를 고정시킬수있다. 컨테이너간의 통신을 로컬에서 테스트할때 유용한 방법이다. 굳이 외부를 거치지 않고 컨테이너 내부에서 통신할떄는 가능하기 때문이다(network를 같이 쓸때) 이럴때 고정으로두면 , 뭐 굳이 귀찮은작업을 하지 않아도 되서 좋다.
[k8s] 공부 내용 정리 Resource ex. pod의 버전을 어떻게 알수 있을까? kubectl explain을 쓰게 되면, 해당 리소스의 버전을 알수 있다. 예를 들어 Pod가 v1 인지 apps/v1인지 모른다. kubectl explain pod를 하면, 리소스에 대한 버전 정보를 알 수 있다. 또한 yaml에서 - 를 쓰는건 배열형태의 값을 표현하기위한 문법이다. 이건 몰라서 추가로 적어놓는다.
[Kubernetes] Api-server RestApi 호출 1부 모든 curl 은 jwt나 인증에 대한 과정을 헤더에 포함해야함 H "Authorization: Bearer {Token}" 는 모든 curl 헤더에 공통 적용 필요, 하위 정리 리스트에서는 해당 내용 생략 Api-server가 32769로 열려있다고 가정, 해당 서버 정보는 전 post에서 확인 가능 Pod 생성, 수정 (파일 단위) : curl -k -H "Authorization: Bearer {Token}" -H "Content-type: application/yaml" --data-binary @smithprjPods.yaml https://127.0.0.1:32769/api/v1/namespaces/default/pods 정보 조회 : curl -H "Content-type: applicati..
[k8s] Secret과 ServiceAccount Secret과 ServiceAccount에 대해서 포스팅하려고한다. 이놈은 느낌만 있고, 어떤거지? 라는 생각을 많이 했다. 그래서 공부를 해봤다. Secret 이란? 시크릿은 비밀번호, Oauth토큰, ssh키 같은 민감한 정보들을 저장하는 용도로 사용한다. 이런 정보들은 컨테이너 안에 저장하지 않고, 별도 보관하였다가. 실제 포드가 실행할때 설정을 통해 컨테이너에 제공해준다. 시크릿 종류 - 내장시크릿 내장 시크릿은 쿠버네티스 클러스터 내부에서 API에 접근할때 사용한다. 클러스터 내부에서 사용되는 계정인 ServiceAccount를 생성하면, 자동으로 관련 시크릿이 만들어진다. 이렇게 만들어진 시크릿을 이용해서, 해당 ServiceAccount가 권한을 가지고 있는 API에 접근할 수 있다. 사용자..
[k8s] 스프링과 k8s 연동 사용자의 요청에 따라서 여러개의 인스턴스, 즉 스프링 프로젝트를 생성해야한다. 또한 이 생성된 여러개의 프로젝트 별로 다른 config 를 전달 해야한다. 1. 스프링 콰츠 생성, 정해진 주기마다 k8s api 호출 2. k8s api를 호출받으면 정해진 pod를 생성(전달받은 값을 기준으로 이름이던 뭐던 유니크하게) 3. 각각의 인스턴스에 spring cloud bus를 활용하여 config 값 전달 (게이트웨이라면 라우팅 정보) 4. spring config 서버는 디비의 값을 보고 인스턴스 별로 다르게 전달 5. 각각의 인스턴스 별로 다른 config 값을 가지고 있는지 확인 이 과정들을 진행할 예정이다. 일단 pod의 를 생성,삭제 하기 위해 api-server와의 통신을 확인해보자 Api ser..