카카오클라우드스쿨 Week16

황동근·2022년 9월 26일
0

카카오클라우드스쿨

목록 보기
16/21

09/26

Cloud 특강

IaaS

  • 데이터센터
    • 대규모 서버
    • 안정적인 전력
    • 통신을 위한 고도화 네트워크 구성
    • 내결함성
    • 고가용성
    • 재해복구
  • IaaS
    • 데이터센터를 사용자들이 쉽게 사용할 수 있게 만든 서비스
    • 비즈니스 도메인
    • 거대한 웹 서비스
    • 데이터센터의 기능들을 웹을 통해서 사용자들이 쉽게 사용
    • IT 서비스 제공을 위한 컴퓨팅 환경 구성 업무에 집중

가상화

  • 컴퓨터의 구성요소
    • 하드웨어
    • 소프트웨어
  • 운영체제
    • 컴퓨터 구성요소들을 사용자가 쉽게 이용할 수 있도록 만들어줌
  • 가상화
    • 하드웨어를 논리적으로 추상화
    • 소프트웨어로 표현된 하드웨어 자원을 가지고, 새로운 운영체제를 동작
    • 가상머신
    • 장점
      • 자원 활용률 극대화
      • 비용 효율성
      • 민첩성
      • 내결함성
      • 확장성
    • 단점
      • 구축 어려움
      • VM을 많이 만들 수 없음

하이퍼바이저

  • 하이버파이저
    • 가상화라는 목적을 달성하게 해 주는 기반 기술
  • 하이버파이저 종류
    • type 1
      • native, bare metal
      • 하드웨어 위에 직접 설치
    • type 2
      • hosted
      • 호스트의 OS 위에서 별도의 VM 관리를 위한 소프트웨어를 통해서 가상화 지원
  • 가상화 종류
    • 컴퓨팅 가상화
      • type 1
        • 전가상화
        • 반가상화
      • type 2
        • 소프트웨어 지원 가상화
    • 네트워크 가상화
    • 스토리지 가상화

Openstack

  • IaaS 형태의 클라우드 컴퓨팅 오픈소스 프로젝트
  • Web Architecture 101
  • KVM
  • Nova

09/27

Docker

Docker compose

  • Multi container service for MSA
  • orchestration tool
    • docker swarm
    • kubernetes
    • 다양한 기능을 통해 원하는 서비스 운영
  • docker-compose.yaml
    • yaml / yml
    • indent

Docker swarm

  • orchestration
  • cluster
  • RAFT
    • election
    • manager node
      • cluster 관리
      • service 실행 가능
    • worker node
      • service 실행
  • container service 시각화
  • swarmpit
    • 모니터링
  • rolling update
  • stack

09/28

3 tier architecture


09/29

Kubernetes

docker

Kubernetes tool

  • kubeadm
    • bootstrap
    • init
    • worker node join
  • kubectl
    • CLI
  • kubelet
    • process

CNI

  • calico plugin
  • cluster network

dashboard

  • PKI 인증서
  • prometheus
  • exporter
  • grafana

OS 환경 구성

  • 보안 구성 해제
    • firewall-cmd
    • Selinux
  • swap 해제
  • network

GCP

kubernetes engine


09/30

Kubernetes

Kubernetes

  • sa
    • service account
  • apiserver
    • 6443 port
  • proxy
    • 8001 port

Prometheus

  • metric
    • 자원 소비 정보
  • exporter
    • daemon
  • PromQL

Grafana

  • visualization

Component

  • 5-binary
    • kube-apiserver-k8s-master
    • etcd-k8s-master
    • kube-scheduler-k8s-master
    • kube-cntroller-manager-k8s-master
    • kubelet
  • kube-proxy
  • calico

Architecture

  • master node
    • control plane
    • 작업이 예약되는 시기와 라우팅되는 위치를 결정
    • Taint
      • NoSchedule
  • worker node
    • data plane
    • 작업이 실행되는 영역
  • pod
    • container
    • deployment
      • ReplicaSet
      • rolling update
  • k8s object
    • api-resource
  • kubectl
    • create
      • yaml에 지정된 obeject 생성, 업데이트 불가
    • apply
      • yaml에 지정된 obeject 생성, 업데이트 가능
    • delete
      • yaml에 지정된 obeject 삭제
    • -n
      • namespace
    • get
    • describe
  • flow
    • user -> api-server
    • api-server -> etcd
    • api-server -> scheduler
    • api-server -> etcd
    • api-server -> master kubelet
    • api-server -> worker kubelet
    • container runtime
    • worker kubelet -> api-server
    • api-server -> etcd
  • API server
    • rest api
  • etcd
    • key-value DB
    • pod
    • b+tree
    • SSOT
  • network
    • kubeadm init --pod-network-cidr=10.96.0.0/12 --advertise-address=192.168.56.100
    • kubeadm join
      • key
    • pod network
      • addon
    • calico network plugin
      • 여러 개의 interfacae(tool), module로 구성
      • calico.yaml
      • 라우팅 정보를 이용한 network 수행
        • etcd
      • IPAM
        • IP Address Manager
      • felix
        • IPtable
          • free routing
        • route table
          • source
          • destination
      • BIRD
        • calico의 모듈
        • vRouter를 구현하고 BGP를 이용하는 동적 IP 라우팅 데몬
          • Border Gateway Protocol
        • L3
    • IP pool
      • cluster ip
    • service object
      • label
      • End point
        • pod ip
      • NAT, NAPT
        • kube-proxy
  • DaemonSet
    • pod를 모든 노드에 하나씩 배포
profile
안녕하세요~

0개의 댓글