코스 개요
1일차 - 컨테이너 및 이미지 관리
컨테이너 플랫폼 소개
- 전통적인 애플리케이션 배포와 컨테이너 기반 배포 비교
- 컨테이너와 가상 머신
- 컨테이너 런타임 및 컨테이너 엔진
- Docker, Kubernetes 및 OpenShift의 역할
- 일반적인 컨테이너 플랫폼 아키텍처
- 개발, 테스트 및 프로덕션 워크플로우
컨테이너 작업
- 컨테이너 실행 및 관리
- 컨테이너 수명 주기
- 컨테이너 시작, 중지 및 제거
- 컨테이너 내부에서 명령 실행
- 환경 변수
- 포트 매핑
- 컨테이너 로그
- 리소스 사용량 및 프로세스 검사
컨테이너 이미지 빌드
- 이미지 구조 및 레이어
- Dockerfile 및 Containerfile 생성
- 베이스 이미지 선택
- 애플리케이션 종속성 추가
- 엔트리포인트 및 명령 구성
- 이미지 캐싱
- 이미지 크기 줄이기
- 재현 가능한 이미지 빌드
컨테이너 레지스트리
- 공개 및 비공개 레지스트리
- 이미지 태깅 및 버전 관리
- 이미지 푸시 및 풀
- 이미지 인증
- 이미지 보존 및 정리
- 기본 이미지 보안 고려 사항
컨테이너 네트워킹 및 저장소
- 컨테이너 네트워크 개념
- 브리지 네트워킹
- 포트 노출
- 컨테이너 간 통신
- 바인드 마운트 및 볼륨
- 컨테이너 외부 영구 데이터
- 백업 고려 사항
실습 연습
- 컨테이너 실행 및 검사
- 애플리케이션 이미지 빌드
- 포트 및 환경 변수 구성
- 레지스트리에 이미지 게시
- 컨테이너 외부에 영구 데이터 저장
2일차 - Kubernetes 아키텍처 및 워크로드
Kubernetes 기본 사항
- 컨테이너 오케스트레이션의 목적
- Kubernetes 아키텍처
- 제어 플레인 구성 요소
- 워커 노드
- API 서버
- 스케줄러
- 컨트롤러
- 클러스터 상태 및 desired state
- kubectl를 사용하여 클러스터와 통신
Kubernetes 리소스
- Pod
- ReplicaSet
- Deployment
- 네임스페이스
- 라벨 및 어노테이션
- 선택자(Selectors)
- 선언형 리소스 정의
- YAML 매니페스트
애플리케이션 배포
- Deployment 생성 및 관리
- 워크로드 확장
- 컨테이너 이미지 업데이트
- 롤링 업데이트
- 롤백
- 배포 기록
- 워크로드 다시 시작
- 애플리케이션 리플리카 관리
애플리케이션 구성
- ConfigMap
- Secrets
- 환경 변수
- 구성 파일
- 애플리케이션 코드와 구성 분리
- 환경별 설정 관리
리소스 관리
- CPU 및 메모리 요청
- CPU 및 메모리 한도
- 리소스 할당량
- 한도 범위(Limit Ranges)
- 스케줄링 영향
- 리소스 관련 실패 진단
실습 연습
- 컨테이너화된 애플리케이션 배포
- Kubernetes 매니페스트 생성 및 업데이트
- 애플리케이션 확장
- 롤링 업데이트 및 롤백 수행
- ConfigMap 및 Secrets를 사용하여 애플리케이션 구성
- 리소스 요청 및 한도 적용
3일차 - Kubernetes 네트워킹, 저장소 및 보안
Kubernetes 네트워킹
- 클러스터 네트워킹 모델
- Pod 간 통신
- 서비스 발견
- 클러스터 내부 DNS
- ClusterIP 서비스
- NodePort 서비스
- LoadBalancer 서비스
- Ingress 개념
- 애플리케이션 노출 패턴
네트워크 정책(Network Policies)
- 워크로드 간 트래픽 제어
- Ingress 및 Egress 규칙
- 네임스페이스 기반 트래픽 제어
- 네트워크 연결성 테스트
- 서비스 통신 문제 해결
영구 저장소(Persistent Storage)
- 일시적 및 영구 저장소
- 볼륨(Volumes)
- PersistentVolume
- PersistentVolumeClaim
- StorageClass
- 동적 프로비저닝
- 액세스 모드
- 회수 정책(Reclaim Policies)
- 상태 유지형 애플리케이션을 위한 저장소
Kubernetes 액세스 제어
- 인증 및 권한 부여 개념
- 역할 기반 액세스 제어(RBAC)
- 역할(Roles) 및 클러스터 역할(ClusterRoles)
- 역할 바인딩(RoleBindings) 및 클러스터 역할 바인딩(ClusterRoleBindings)
- 서비스 계정(Service Accounts)
- 최소 권한 원칙
- 유효 권한 검사
워크로드 보안
- 보안 컨텍스트(Security Contexts)
- 비 root 사용자로 컨테이너 실행
- Linux 기능(Capabilities)
- 읽기 전용 파일 시스템
- Secret 처리
- 이미지 기원(Image Provenance)
- 일반적인 구성 위험
실습 연습
- Kubernetes 서비스를 사용하여 애플리케이션 노출
- Ingress 구성
- 네트워크 정책을 사용하여 트래픽 제한
- 영구 저장소 프로비저닝
- RBAC 권한 구성
- 적절한 보안 컨텍스트로 워크로드 실행
4일차 - OpenShift 환경 작업
OpenShift 소개
- Kubernetes 기반 애플리케이션 플랫폼으로서의 OpenShift
- OpenShift 환경에서의 Kubernetes 리소스
- OpenShift 클러스터 아키텍처
- 프로젝트 및 네임스페이스
- 플랫폼 사용자 및 서비스 계정
- 웹 콘솔 작업
- OpenShift CLI 작업
프로젝트 및 액세스 관리
- 프로젝트 생성 및 관리
- 사용자 권한 할당
- 프로젝트 수준 역할
- 관리자 액세스
- 리소스 할당량
- 한도 범위(Limit Ranges)
- 서비스 계정
- 프로젝트 리소스 검토
애플리케이션 배포
- 컨테이너 이미지 배포
- 애플리케이션 워크로드 생성
- 배포 관리
- 애플리케이션 확장
- 애플리케이션 버전 업데이트
- 롤백
- 애플리케이션 구성 관리
- Secrets 작업
애플리케이션 노출
- OpenShift의 서비스
- 라우트(Routes)
- TLS 개념
- 내부 및 외부 애플리케이션 액세스
- 호스트명 및 인증서
- 라우트 및 서비스 문제 진단
OpenShift의 저장소
- Persistent Volume Claims
- StorageClass
- 워크로드에 저장소 연결
- 상태 유지형 워크로드
- 저장소 액세스 권한
- 볼륨 마운트 문제 해결
스케줄링 및 노드 관리
- 라벨 및 선택자(Selectors)
- 노드 선택기(Node Selectors)
- 티인트(Taints) 및 허용 조건(Tolerations)
- 친화성(Affinity) 및 반-친화성(Anti-Affinity) 개념
- 워크로드 배치
- 노드 고립(Cordoning) 및 배수(Draining)
- 노드 유지보수 고려 사항
실습 연습
- OpenShift 환경에 접속
- 프로젝트 생성 및 구성
- 애플리케이션 배포 및 노출
- 사용자 및 서비스 계정 액세스 구성
- 영구 저장소 연결
- 실행 중인 워크로드 확장 및 업데이트
5일차 - 운영, 모니터링 및 문제 해결
플랫폼 모니터링
- 클러스터 및 애플리케이션 상태 모니터링
- 리소스 메트릭
- 노드 상태
- 워크로드 상태
- 용량 및 리소스 활용도
- 성능 제약 요소 식별
로그 및 이벤트
- 컨테이너 로그
- Pod 로그
- 이전 컨테이너 로그
- Kubernetes 이벤트
- 애플리케이션 및 플랫폼 메시지
- 운영 데이터 필터링 및 해석
상태 확인(Health Checks)
- 시작 프로브(Startup Probes)
- 준비 상태 프로브(Readiness Probes)
- 활성 프로브(Liveness Probes)
- 유용한 상태 엔드포인트 설계
- 프로브 실패 진단
- 불필요한 애플리케이션 재시작 방지
워크로드 문제 해결
- 대기 중인 Pods
- 이미지 풀 실패
- 크래시 루프(Crash Loops)
- 잘못 구성된 환경 변수
- 마운트 실패
- 부족한 리소스
- 권한 오류
- 서비스 및 라우트 연결성 문제
- DNS 문제
- 애플리케이션 시작 실패
운영 보안
- 권한 검토
- 서비스 계정 사용
- 자격 증명의 안전한 처리
- 이미지 보안 관행
- 네트워크 격리
- 플랫폼 액세스 감사
- 최소 권한 원칙 적용
유지보수 및 수명 주기 관리
- 일상 플랫폼 검사
- 노드 유지보수
- 애플리케이션 백업 고려 사항
- 구성 백업
- 업데이트 계획
- 변경 관리
- 업데이트 테스트
- 롤백 계획
- 재난 복구 개념
최종 실습 워크숍
참가자들은 종단 간 운영 시나리오를 완료합니다:
- 컨테이너 이미지 빌드 및 태깅
- 이미지를 레지스트리에 게시
- Kubernetes 또는 OpenShift에 애플리케이션 배포
- 애플리케이션 설정 및 자격 증명 구성
- 애플리케이션 노출
- 영구 저장소 연결
- 액세스 권한 구성
- 상태 확인 추가
- 애플리케이션 확장 및 업데이트
- 심어진 실패 원인 진단 및 해결
과정 형식
- 인터랙티브 강의 및 기술 토론
- 강사 시연
- 광범위한 실습 연습
- 시나리오 기반 관리 및 문제 해결 워크숍
- 컨테이너, Kubernetes 및 OpenShift 환경에서의 실용적 작업
과정 맞춤화 옵션
- 이 과정은 참가자의 기존 인프라, 클라우드 공급자 및 컨테이너 도구set에 맞게 조정할 수 있습니다.
- Docker, Kubernetes 및 OpenShift 주제 간의 균형을 팀의 경험에 따라 조정할 수 있습니다.
- 실습 연습은 조직의 애플리케이션, 배포 프로세스 및 운영 요구 사항에 맞게 맞춤화할 수 있습니다.
상표 공지
OpenShift는 Red Hat, Inc.의 상표입니다. 이 독립적으로 개발된 교육 과정은 Red Hat과 제휴하지 않았으며, 승인받거나 인가받은 것도 아닙니다.
요건
참가자는 다음을 갖추어야 합니다:
- Linux 명령줄 사용 경험
- 기본 시스템 관리 또는 DevOps 지식
- 네트워킹 개념에 대한 일반적인 이해
- 소프트웨어 배포 프로세스에 대한 친숙함
Docker, Kubernetes 또는 OpenShift에 대한 이전 경험이 도움이 되지만 필수 사항은 아닙니다.
회원 평가 (7)
레다 설명이 이해를 매우 쉽게 해주었습니다.
Eric Van Wyk
코스 - Docker, Kubernetes and OpenShift 3 for Administrators
기계 번역됨
랩이 최고였습니다. 매우 실용적이었으며 실제 경험을 제공했습니다. 개인적으로 이것은 과정을 진정으로 이해하고 다룬 개념들을 적용하는 가장 효과적인 방법이라고 생각합니다.
Hishaam Johnstone
코스 - Docker, Kubernetes and OpenShift 3 for Administrators
기계 번역됨
도움을 주고 불확실할 때 더 자세히 설명하려는 의지가 좋았습니다
Letlotlo Miffi
코스 - Docker, Kubernetes and OpenShift 3 for Administrators
기계 번역됨
아드리아노는 주제를 매우 깊이 연구했으며, 이는 제가 가장 선호하는 방식입니다. 즉, 명령어보다는 그 뒤의 메커니즘에 더 중점을 두었습니다. 논의된 시나리오는 실제 예제로 잘 뒷받침되어 있어 제시된 내용을 이해하는데 많은 도움이 되었습니다.
Mariusz BANASZCZYK - Sopra Steria
코스 - Docker, Kubernetes and OpenShift for Administrators
기계 번역됨
아드리아노에 대한 깊은 지식. 기본 개념 설명
Tomasz Szalankiewicz - LPP SA
코스 - Docker, Kubernetes and OpenShift for Administrators
기계 번역됨
저는 일반적으로 발표자에게 좋은 인상을 받았습니다.
Josif Kovacevic - ANZ
코스 - Docker, Kubernetes and OpenShift for Administrators
기계 번역됨
Adrian clearly knows and enjoys this technology.
Tom Edginton - National Oceanography Centre
코스 - Docker, Kubernetes and OpenShift for Administrators
기계 번역됨