
What is kubernetes, why would you use it, what benefits does it give you
On Kubernetes you run containers. In this lecture you'll learn what containers are all about.
Kubernetes can run almost anywhere. You can run it on-premise or in the cloud.
This lectures explains what minikube is, a piece of software that can help you run kubernetes locally.
This demo shows you how to run Kubernetes using Minikube.
As an alternative to Minikube, you can install kubernetes using the official docker client for Mac / Windows
The difference between Minikube vs Docker client vs Kops vs Kubeadm: which one to use when
An introduction to Kops - Kubernetes Operations. Software to provision and manage Kubernetes on AWS.
Kops only works on Mac / Linux, so you'll need to setup a vagrant box to run kops. If you are running already MacOS or Linux, and you don't want to be working in a VM, you can skip this step.
You first need to open an AWS account, add an IAM user for kops and setup DNS using route53
The DNS settings need to be correct for your kubernetes cluster to work. Follow this lecture if you have issues with your DNS settings.
Once the AWS setup is complete, you can use kops to setup the Kubernetes cluster on AWS
Kubernetes only runs containers. In this lecture you learn how to build your application in a container.
In this demo I show you how to build a NodeJS example app in a container.
Once you have built a container, you need to put it on a registry, so Kubernetes can download it. You have public and private registries. Putting a container on a public registry is free.
In this demo I show you how to push the container with our app to Docker Hub
THis lecture explains how to run a first application on Kubernetes
Once the first app is available on Docker Hub, I show you how to run this app on our Kubernetes cluster
In this demo I show you some useful commands you can use to manage your containers on Kubernetes
If you're running your cluster on AWS, you can create a LoadBalancer (AWS ELB) for your application
In this demo I show you how to add an ELB (Elastic Load Balancer) to the example app
In this lecture I recap the most important concepts from the first section
In this lecture I explain the Kubernetes node architecture
You can use the replication controller to spin up multiple instances of your application
This demo shows you how to spin up multiple instances of your application
Deployment objects allow a better abstraction of an application running on Kubernetes. You can update your application version easily and roll-back if something goes wrong.
In this demo I show you how our example application can be a deployment.
Exposing our application for external traffic can be done using services
In this demo I show you how to expose our example app
Labels can be used to tag objects
Labels together with NodeSelectors can be used to run pods on a specific node
Healthchecks can be used to periodically check whether our app in the pod is still working
In this demo I show you how to use healthchecks
Application credentials (for instance to access a database) can be stored in secrets.
Credentials can be mounted as a volume in a pod. This demo shows you how to do that.
First attempt to run a wordpress on Kubernetes. In a later version I'll show you a better way of running Wordpress on Kubernetes
Kubernetes also has a Web UI, a dashboard that makes it easy to use kubernetes
Demo explaining how to add the web UI in kops
In this brief demo I give an overview how to use the dashboard
You can do service discovery using DNS.
This is a demo showing you how service discovery works
Containers are immutable. You can still use ConfigMaps for dynamic configuration data that needs to be present on the container.
In this demo I show you how to use ConfigMap to create a custom configuration file for a standard nginx container
Ingress controller allows you to have a reverse proxy / load balancer within your Kubernetes cluster and without using an external load balancer.
In this demo I show you how to use the built-in kubernetes ingress controller
If you want to run stateful applications on Kubernetes, you need volumes.
In this demo I show you how to use volumes in Kubernetes
Kubernetes can auto-provision volumes for you, no need to manually create an EBS volume on AWS
Now we know enough to use volumes to launch a fully working wordpress
Pet Sets enables you to run distributed applications and databases on Kubernetes, like ElasticSearch, MySQL Cluster, or Cassandra
In this demo I show you how to use StatefulSets with Cassandra
Daemon Sets will make sure a pod is running on every node
Resource Usage Monitoring using influxdb and grafana will give you application metrics
Starting from 1.11 Heapster will be deprecated. The replacement is the Metrics Server. This lecture explains the difference with heapster and how to install the Metrics Service.
This demo explains how to setup Resource Usage Monitoring using heapster + influxdb + grafana
Autoscaling can scale pods horizontally based on predefined targets
In this demo I show you how horizontal pod autoscaling (hpa) works
This lectures explains what Node and Interpod Affinity / Anti-affinity is and what the difference is between node affinity and the NodeSelector
This is a demo showing how Node Affinity works
This lecture explains taints and tolerations, which is the opposite of node affinity
This explains what Custom Resource Definitions are
This lectures gives an architecture overview of the master services
As an administrator, you can implement resource quotas to make sure one team or one person doesn't take up all resources
Namespaces can logically separate a Kubernetes cluster
In this demo I explain how to implement namespace quotas
Users can be added to your Kubernetes cluster. This lecture explains authentication and authorization
In this demo I show you how to add users using certificates
This lecture explains authorization in Kubernetes using RBAC
Every pod needs a unique IP. Not all infrastructure can easily handle this. CNI and overlay networks can help.
Sometimes you want to add / remove nodes. This is how it is done
This demo shows how to drain a Kubernetes node
Once you put a Kubernetes cluster in production, you are going to want to have full high availability. This lecture explains you how to achieve that.
This demo shows how to enable HA on your AWS Kubernetes cluster using kops
This lecture describes what admission controllers are in Kubernetes. It also explains what the admission controllers that are enabled by default do.
Introduction to the MutatingWebhook and ValidatingWebhook
This demo shows you how the MutatingWebhook works. For the webhook itself, we're using Golang.
This demo shows you how the MutatingWebhook works. For the webhook itself, we're using Golang.
This demo shows you how the MutatingWebhook works. For the webhook itself, we're using Golang.
Pod Security Policies allow you to fine-grain control pod security.
etcd is the backend of Kubernetes. This lecture explains what etcd is.
Etcd uses the raft consensus algorithm. This lecture explains how raft works.
This demo shows how to backup and restore an etcd cluster when using kops
Continuous deployment with skaffold, an open source tool by Google
A demo showing how you can develop a golang application in vscode and have every change deployed almost instantly to your Kubernetes cluster
Lecture to give an introduction to Flux and GitOps
Demo to show how to setup flux, link it to a git repository, and deploy manifests from git to a Kubernetes cluster
DevOps를 위한 쿠버네티스 완전 정복!
최신 버전으로 업데이트!
컨테이너를 효율적으로 관리하세요!
DevOps (데브옵스) : 쿠버네티스 (Kubernetes) 완전 정복 강의를 선택해야 하는 이유
본 과정에서 여러분은 쿠버네티스에 여러분의 앱을 배포하고 사용, 유지하는 방법을 배웁니다. 데브옵스에 관심이 있다면, 마스터해야 할 기술입니다. 쿠버네티스는 최근에 큰 인기를 끌었으며 기업에서 요구하는 스킬입니다.
이 과정은 최신 버전의 여러 기능을 다루기 위해 자주 업데이트됩니다!
10년 전, 구글이 처음으로 컨테이너를 운영하기 시작했을 때는 그 누구도 이 정도의 인프라 민첩성과 효율성에 미치지 못했습니다. 이 지식을 이용해, 구글은 쿠버네티스를 무료 오픈소스로서 출시했습니다. 오늘날 쿠버네티스는 구글이 가진 효율과 속도를 갖추기 위해 크고 작은 기업에서 사용됩니다. 도커를 이용해 여러분의 앱을 컨테이너화할 수 있습니다. 그다음, 여러분의 서버에서 그 컨테이너를 관리할 수 있지만, 효율적으로 관리하기 위해서는 추가적인 관리 소프트웨어가 필수입니다. 쿠버네티스는 다수의 서버에 여러분의 컨테이너를 구축하고, 일정을 짜며 관리해줄 기획자입니다. 쿠버네티스는 단일 기기, 수천 개의 기기에서도 실행 가능하며 온프레미스 형태 혹은 클라우드 형태로도 실행 가능합니다.
도커를 이용해 컨테이너 내에 앱을 구축하는 방법과 그 앱을 쿠버네티스에서 활용하는 방법을 보여 드리겠습니다. 또한, AWS를 이용해 데스크톱이나, 클라우드에 클러스터를 설정하는 방법도 설명해 드리겠습니다. 저는 실제 앱(블로그용 소프트웨어 MySQL 탑재 워드프레스)을 예시로 사용해서, 스테이트리스와 스테이트풀 앱을 스케줄링하는 쿠버네티스의 강력함을 보여드립니다.
쿠버네티스 데스크톱 설치에 관한 소개 강의는 무료로 미리보기가 가능해 결제 전에 시도해보실 수 있습니다!
본 강의는 영어 자막과 한글 자막을 제공합니다. :)
DevOps (데브옵스) : 쿠버네티스 (Kubernetes) 완전 정복 강의의 커리큘럼
쿠버네티스 설치하고 구성하기(노트북/데스크톱 혹은 AWS 내 프로덕션 클러스터)
도커 클라이언트, Kubeadm, Kops, Minikube를 이용해 클러스터 설정하기
쿠버네티스에서 스테이트리스 앱과 스테이트풀 앱 실행하기
노드/파드 어피니티, 안티 어피니티를 이용해 헬스체크, 시크릿, 컨피그맵, 배치 전략 사용하기
스테이트풀 세트를 이용해 쿠버네티스에서 카산드라 클러스터 배치하기
사용자 추가, 할당량 및 제한 설정, 노드 유지보수, 모니터링 셋업
볼륨을 이용해 컨테이너에 퍼시스턴스 부여하기
메트릭을 이용해 앱을 스케일링하기
헬름으로 앱을 패키징하고 자신의 앱에 대한 헬름 차트 작성하기
젠킨스를 이용해 자동으로 자신만의 헬름 차트를 작성하고 활용하기
큐브리스를 설치하고 서버리스 함수 실행하기
이스티오를 설치하여 쿠버네티스에서 서비스 메쉬 활용하기
스캐폴드를 이용해 지속적으로 개발하기
강의를 들으시고 강의와 관련하여 궁금하신 점은 무엇이든 Q&A에 남기실 수 있지만, 꼭 영어로 남겨주세요. 그래야 답변을 드릴 수 있습니다. :)
업데이트 (2019년 11월):
*어드미션 컨트롤러 강의 추가
*스캐폴드를 이용한 지속적 개발
*etcd와 래프트 알고리즘
업데이트 (2020년 1월):
*AWS EKS(관리된 쿠버네티스) 강의 및 데모
업데이트 (2021년 1월):
*변형 웹훅 및 검증 웹훅, 관련 데모