수업내용
Part 1. 쿠버네티스 시작하기
- 쿠버네티스 소개
- 쿠버네티스 설치하기
- 쿠버네티스로 컨테이너 실행하기
Part 2. 쿠버네티스 기본 개념
쿠버네티스 아키텍처
- 파드
- 컨트롤러
- 서비스
- 인그레스
- 레이블과 애너테이션
- 컨피그맵
- 시크릿
Part 3. 쿠버네티스 한 걸음 더 들어가기
- 파드 스케쥴링
- 인증과 권한관리
- 데이터 저장
- 클러스터 네트워킹 구성
- 쿠버네티스 DNS
- 로깅과 모니터링
- 오토스케일링
- 사용자 정의 자원
- 쿠버네티스 기반으로 워드프레스 앱 실행하기
- 헬름
** K8S 명령어 실습전 AKS 환경 준비 **
VSCODE에서 Azure Potal 접속
- VSCode에서 명령어 실행
Connect-AzAccount
- 계정 선택 및 로그인 진행
- 아래와 같이 연동작업
PS D:\GIT> Connect-AzAccount
경고: Unable to acquire token for tenant '4aed9820-113d-4f48-9f53-4d91f37ad279' with error 'SharedTokenCacheCredential authentication unavailable. Token acquisition
failed for user minseo_kim89@megazone.com. Ensure that you have authenticated with a developer tool that supports Azure single sign on.'
Account SubscriptionName TenantId Environment
------- ---------------- -------- -----------
minseo_kim89@megazone.com kms-limited xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx AzureCloud
-
[AzurePotal] Azure Potal에 접속
1). 상단에 있는 Cloud Shell을 클릭하여
스토리지 생성
2). 스토리지 만들기 클릭
3). Cloud Shell 진입 -
VSCODE에서 Azure Cloud Shell 클릭
-
상단에 구독 선택
-
VSCode에서 접속 성공한 모습
VSCode 연동작업 완료
목차
K8s namespace
- namespace
- 클러스터 하나를 여러 개의 논리적인단위로 나눠서 사용
- 쿠버네티스 클러스터 하나를 여러 팀이나사용자가 함께 공유
- 용도에 따라 실행해야 하는 앱을 구분할 때 사용
네임스페이스 사용하기
- namespace
생성
- CLI 방식으로 namespace 생성
kubectl create namespace blue kubectl get namespaces
- yaml파일을 생성하여 namespace 생성
kubectl create namespace green --dey-run -o yaml>green-ns.yaml vim green-ns.yaml kubectl create -f green-ns.yaml
- CLI 방식으로 namespace 생성
- namespace 관리
kubectl get namespace kubectl delete namespace
- nginx.yaml 파일
```
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- image: nginx:1.14
name: nginx
ports:
- containerPort: 80
- containerPort: 443 ```
- image: nginx:1.14
name: nginx
ports:
yaml 템플릿
- 사람이 쉽게 읽을 수 있는 데이터 직렬화 양식
- 기본 문법
- 구조화된 데이터를 표현하기 위한 데이터 포맷
- Python처럼 들여쓰기로 데이터 계층을 표기
- 들여쓰기를 할 때에는 Tab이 아닌 Space Bar(2칸)를 사용
- 가독성이 좋아 설정 파일에 적합한 형식
- Scalar 문법 : ‘:’을 기준으로 key:value를 설정
name: nginx
- 배열 문법 : ‘-‘ 문자로 여러 개를 나열
```
ports:
- containerPort: 80
- containerPort: 443 ```
- 공식 사이트 : http://yaml.org/
- kubernetes yam example $cat nginx-pod.yaml
yaml 예시코드
apiVersion: apps/v1
kind: Pod
parent:
child1: first child
key2:
child-1: kim
key3:
- grandchild1:
name: kim
- grandchild2:
name: lee #command line
#comment line
API Version
- alpha -> beta -> stable
- kubernetes Object 정의 시 apiVersion이 필요
- kubernetes가 update하는 API가 있으면 새로운 API가 생성됨
API Object의 종류 및 버전 | – |
---|---|
Deployment | apps/v1 |
Pod | v1 |
ReplicaSet | apps/v1 |
ReplicationController | v1 |
Service | v1 |
PersistentVolume | v1 |
# 버전을 apps/v1이나 v2로 명시하면 Pod를 찾지못함
apiVersion: v1
kind: Pod # v1으로 동작중
parent:
child1: first child
key2:
child-1: kim
key3:
- grandchild1:
name: kim
- grandchild2:
name: lee #command line
#comment line