VS Code 설치와 활용
사용한 운영체제는 Ubuntu 20.04버전이며 쿠버네티스 환경은 ~ 버전이다
VirtualBox에 Kubernetes가 설치된 상태로 진행
여기서는 VirtualBox Kubernetes 환경에서 진행하지만 클라우드 환경이나 로컬 쿠버네티스도 충분히 사용 가능함
다만 애저 클라우드 환경에 경우에는 프로비저닝 할 수 있는 추가 툴을 설치해야 함
1. 우분투에 VS Code 설치
우분투에 VS Code를 설치하는 가장 간단한 방법은 snap을 사용해서 설치하는 것
물론 visual studio 사이트를 직접 방문해 deb 파일을 받고 dpkg로 설치하는 방법도 있음
여기서는 snap을 사용해 설치함
$ sudo snap install --classic code # or code-insiders
[sudo] server1의 암호:
code 0ba0ca52 from Visual Studio Code (vscode✓) installed
2. vscode 실행하기
커맨드에서 code를 실행하면 바로 실행됨
$ code
또는 우분투의 메뉴바에서 '프로그램 표시'를 클릭하고 이동해 vs를 검색해서 실행
vscode가 실행된 화면
3. 쿠버네티스 확장 플러그인 설치
vscode에서 쿠버네티스 확장 플러그인을 설치후 왼쪽 메뉴에서 Extesions를 클릭
- 옆으로 나오는 검색 바에서 kubernetes를 검색
- 화면에 보이는 첫번째 Kuberntes를 클릭하고 Install 클릭
- 오른쪽 아래에 의존성(dependency) 때문에 추가로 설치하라는 플러그인이 여러개 나오는데 그냥 다 설치하면 됨
4. Kubernetes와 연결
kubernetes가 설치된 환경에서 code를 설치하면 바로 ~/.kube/config
파일을 자동으로 읽는 것으로 보임
만약 자동으로 등록되지 않는 경우에는 오른쪽에 숨겨져있는 More Actions를 클릭하면 Cluster를 추가할 수 있는 기능이 나옴
kubeconfig를 직접 세팅하거나 Add Existring Cluster를 클릭하면 추가로 쿠버네티스와 연결이 가능함
클러스터에 잘 접속됐다면 스스로 쿠버네티스 클러스터의 정보를 조회하여 데이터를 가져옴
5. VScode를 사용해 쿠버네티스 포드 작성하기
yaml 디렉토리를 만들고 적당한 yaml 파일을 선택
mkdir ~/yaml
go-http-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: http-go
spec:
containers:
- name: http-go
image: gasbugs/http-go
ports:
- containerPort: 8080
yaml 파일이 있다면 cmd + shift + P
를 누르고 Kubernetes: Create
를 선택하면kubectl create -f ~.yaml
처리와 같이 created 처리 해줌
Workloads - Pods 에서 created 된 Pod를 확인할 수 있음
6. 쿠버네티스 적용된 yaml 파일 수정하기
deployment 등의 수정이 가능한 파일은 여기서 바로 수정한뒤 저장을 누르면
자동으로 오픈된 Folder에 yaml 파일이 저장됨
cmd + shift + P
를 누르고 Kubernetes: Apply
를 선택하면 클러스터에 적용됨
확인을 묻는 창이 나오면 Apply를 클릭
파일의 변경된 부분을 확인할 수 있음
포드를 조회해보면 포드가 스케일링돼서 3개가 된 모습이 보인다
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
http-go-5bcd97bbdf-hsc48 1/1 Running 0 45s
http-go-5bcd97bbdf-r9qvb 1/1 Running 0 45s
http-go-5bcd97bbdf-rccxb 1/1 Running 0 4m34s
7. Kubernetes Support Extensions
yaml 파일을 자동으로 작성해주는 확장 플러그인
편리하게 원하는 yaml 파일을 빠르게 작성할 수 있음
Kubernetes Pod
deployment_simple
secret_template
'개발강의정리 > DevOps' 카테고리의 다른 글
[데브옵스를 위한 쿠버네티스 마스터] 애플리케이션 스케줄링과 라이프사이클 관리 - 초기 명령어 및 아규먼트 전달과 실행 (0) | 2021.01.19 |
---|---|
[데브옵스를 위한 쿠버네티스 마스터] 애플리케이션 스케줄링과 라이프사이클 관리 - 애플리케이션 변수 관리 (0) | 2021.01.19 |
[Apache kafka 조금 아는 척하기] 카프카 컨슈머 (0) | 2021.01.05 |
[Apache kafka 조금 아는 척하기] 카프카 프로듀서 (0) | 2021.01.05 |
[Apache kafka 조금 아는 척하기] 카프카란? (0) | 2021.01.05 |
댓글