[08/36] 4-2. 쿠버네티스 아키텍처 - namespace


[따배쿠] 4-2. 쿠버네티스 아키텍처 - namespace

https://www.youtube.com/playlist?list=PLApuRlvrZKohaBHvXAOhUD-RxD0uQ3z0c
  • Category : 따배쿠
  • Tag : 따배쿠


수업내용

Part 1. 쿠버네티스 시작하기

  1. 쿠버네티스 소개
  2. 쿠버네티스 설치하기
  3. 쿠버네티스로 컨테이너 실행하기

    Part 2. 쿠버네티스 기본 개념

  4. 쿠버네티스 아키텍처
  5. 파드
  6. 컨트롤러
  7. 서비스
  8. 인그레스
  9. 레이블과 애너테이션
  10. 컨피그맵
  11. 시크릿

    Part 3. 쿠버네티스 한 걸음 더 들어가기

  12. 파드 스케쥴링
  13. 인증과 권한관리
  14. 데이터 저장
  15. 클러스터 네트워킹 구성
  16. 쿠버네티스 DNS
  17. 로깅과 모니터링
  18. 오토스케일링
  19. 사용자 정의 자원
  20. 쿠버네티스 기반으로 워드프레스 앱 실행하기
  21. 헬름

** K8S 명령어 실습전 AKS 환경 준비 **

VSCODE에서 Azure Potal 접속

  1. VSCode에서 명령어 실행
    Connect-AzAccount
    
  2. 계정 선택 및 로그인 진행 img
  • 아래와 같이 연동작업
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
  1. [AzurePotal] Azure Potal에 접속

    1). 상단에 있는 Cloud Shell을 클릭하여 스토리지 생성 img
    2). 스토리지 만들기 클릭 img
    3). Cloud Shell 진입 img

  2. VSCODE에서 Azure Cloud Shell 클릭 img

  3. 상단에 구독 선택 img

  4. VSCode에서 접속 성공한 모습 img

VSCode 연동작업 완료


목차


K8s namespace

  • namespace
    • 클러스터 하나를 여러 개의 논리적인단위로 나눠서 사용
  • 쿠버네티스 클러스터 하나를 여러 팀이나사용자가 함께 공유
  • 용도에 따라 실행해야 하는 앱을 구분할 때 사용

네임스페이스 사용하기

  • namespace 생성
    1. CLI 방식으로 namespace 생성
      kubectl create namespace blue
      kubectl get namespaces
      
    2. yaml파일을 생성하여 namespace 생성
      kubectl create namespace green --dey-run -o yaml>green-ns.yaml
      vim green-ns.yaml
      kubectl create -f green-ns.yaml
      
  • namespace 관리
    kubectl get namespace
    kubectl delete namespace
    
  1. nginx.yaml 파일 ``` apiVersion: v1 kind: Pod metadata: name: mypod spec: containers:
    • image: nginx:1.14 name: nginx ports:
      • containerPort: 80
      • containerPort: 443 ```

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

Share this post