수업내용
Part 1. 쿠버네티스 시작하기
- 쿠버네티스 소개
쿠버네티스 설치하기
- 쿠버네티스로 컨테이너 실행하기
Part 2. 쿠버네티스 기본 개념
- 쿠버네티스 아키텍처
- 파드
- 컨트롤러
- 서비스
- 인그레스
- 레이블과 애너테이션
- 컨피그맵
- 시크릿
Part 3. 쿠버네티스 한 걸음 더 들어가기
- 파드 스케쥴링
- 인증과 권한관리
- 데이터 저장
- 클러스터 네트워킹 구성
- 쿠버네티스 DNS
- 로깅과 모니터링
- 오토스케일링
- 사용자 정의 자원
- 쿠버네티스 기반으로 워드프레스 앱 실행하기
- 헬름
쿠버네티스 설치하기
설치없이 쿠버네티스 사용하기
- 카타코다 쿠버네티스 플레이그라운드
https://www.katacoda.com/courses/kubernetes/playground[폐쇄됨]- Master, node1이 구성되어 있어 바로 사용가능
- Play with Kubernetes
- docker에서 제공. docker hub 계정으로 로그인
- https://labs.play-with-k8s.com/
- 4시간 사용 가능.
Master
,worker Node
를 직접 구성한 후 사용가능
실습환경 : Docker Playground
복사 : ctrl + ins
붙여넣기 : shift + ins
- Initializes cluster master node:
kubeadm init --apiserver-advertise-address $(hostname -i) --pod-network-cidr 10.5.0.0/16
- Initialize cluster networking:
kubectl apply -f https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter.yaml
- (Optional) Create an nginx deployment:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/application/nginx-app.yaml
- ADD NEW INSTANCE 후 MASTER NODE(node1)에서 초기화 작업 진행
kubeadm init --apiserver-advertise-address $(hostname -i) --pod-network-cidr 10.5.0.0/16
- RESULT 화면
[node1 ~]$ kubeadm init --apiserver-advertise-address $(hostname -i) --pod-network-cidr 10.5.0.0/16 Initializing machine ID from random generator. I0121 13:13:31.032254 625 version.go:251] remote version is much newer: v1.26.1; falling back to: stable-1.20 [init] Using Kubernetes version: v1.20.15 [preflight] Running pre-flight checks [WARNING Service-Docker]: docker service is not active, please run 'systemctl start docker.service' [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/ [WARNING FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist [preflight] The system verification failed. Printing the output from the verification: KERNEL_VERSION: 4.4.0-210-generic DOCKER_VERSION: 20.10.1 OS: Linux CGROUPS_CPU: enabled CGROUPS_CPUACCT: enabled CGROUPS_CPUSET: enabled CGROUPS_DEVICES: enabled CGROUPS_FREEZER: enabled CGROUPS_MEMORY: enabled CGROUPS_PIDS: enabled CGROUPS_HUGETLB: enabled
- RESULT 화면
- node1 에서 해당 명령어 복사
kubeadm join 192.168.0.8:6443 --token p80jz1.f0xe2tf37y9s701v \ --discovery-token-ca-cert-hash sha256:c76cbac49cd7be3b2fe9fea539e591c940f3cbc1c4326b76a7234fa052c662ce
- RESULT 화면
[node2 ~]$ kubeadm join 192.168.0.8:6443 --token p80jz1.f0xe2tf37y9s701v \ > --discovery-token-ca-cert-hash sha256:c76cbac49cd7be3b2fe9fea539e591c940f3cbc1c4326b76a7234fa052c662ce Initializing machine ID from random generator. [preflight] Running pre-flight checks [WARNING Service-Docker]: docker service is not active, please run 'systemctl start docker.service' [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/ [WARNING FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist [preflight] The system verification failed. Printing the output from the verification: KERNEL_VERSION: 4.4.0-210-generic DOCKER_VERSION: 20.10.1 OS: Linux CGROUPS_CPU: enabled CGROUPS_CPUACCT: enabled CGROUPS_CPUSET: enabled CGROUPS_DEVICES: enabled CGROUPS_FREEZER: enabled CGROUPS_MEMORY: enabled CGROUPS_PIDS: enabled CGROUPS_HUGETLB: enabled
- RESULT 화면
- 노드2 생성 후 노드1에서 복사한 명령어 실행
kubeadm join 192.168.0.8:6443 --token p80jz1.f0xe2tf37y9s701v \ --discovery-token-ca-cert-hash sha256:c76cbac49cd7be3b2fe9fea539e591c940f3cbc1c4326b76a7234fa052c662ce
- RESULT 화면
[node2 ~]$ kubeadm join 192.168.0.8:6443 --token p80jz1.f0xe2tf37y9s701v \ > --discovery-token-ca-cert-hash sha256:c76cbac49cd7be3b2fe9fea539e591c940f3cbc1c4326b76a7234fa052c662ce Initializing machine ID from random generator. [preflight] Running pre-flight checks [WARNING Service-Docker]: docker service is not active, please run 'systemctl start docker.service' [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/ [WARNING FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist [preflight] The system verification failed. Printing the output from the verification: KERNEL_VERSION: 4.4.0-210-generic DOCKER_VERSION: 20.10.1 OS: Linux CGROUPS_CPU: enabled CGROUPS_CPUACCT: enabled CGROUPS_CPUSET: enabled CGROUPS_DEVICES: enabled CGROUPS_FREEZER: enabled CGROUPS_MEMORY: enabled CGROUPS_PIDS: enabled CGROUPS_HUGETLB: enabled
- RESULT 화면
- Node1 정보 보기
kubectl get nodes -o wide
- RESULT 화면
[node1 ~]$ kubectl get nodes -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME node1 NotReady control-plane,master 4m2s v1.20.1 192.168.0.8 <none> CentOS Linux 7 (Core) 4.4.0-210-generic docker://20.10.1 node2 NotReady <none> 87s v1.20.1 192.168.0.7 <none> CentOS Linux 7 (Core) 4.4.0-210-generic docker://20.10.1
- RESULT 화면
- 전체 지우기 Ctrl+L
- 클라우드 서비스에서 제공하는 쿠버네티스 도구
- 구글 쿠버네티스 엔진(GKE)
- 아마존 쿠버네티스 일래스틱 컨테이너 서비스(EKS)
- 애저 쿠버네티스 서비스(AKS)