If you're interested in using Kubernetes in the Cloud, then this talk is for you. Learn the deployment and management techniques that will help you manage Kubernetes clusters that you are supporting in the cloud. Apply concepts of
CI / CD1/CD2 to your development of container based applications.
Key Takeaways
* Learn how to deploy Kubernetes with IaC
* Learn common methods in developing IaC with a team
* Understand patterns in building and testing containers
* Standards on branching, project management and release engineering
5. Desirable
1. Deploy cluster in a consistent way
2. Ease of management of cluster, and write efficient
code/configs that can be updated transparently
3. Iterate quickly and safely on container applications, have
stable code releasable every 2 weeks.
8. K8s Managed Service Options
Managed
Service
Offering Multi-AZ Persistent
Volumes
Version RBAC
GKE GA Yes Block 1.15.8 Yes
EKS GA Yes Block 1.15.10 Yes
AKS GA Yes Block and
CIFS
1.16 Yes
12. How we build something
1. Identify the problem to solve, team and timeline
2. Create formal specification for the desired system
3. Kickoff meeting - “Divide and Conquer” - Plan, Build,
Test, Deploy Repeat
4. Issues are tracked on Kanban board
5. Release end of every bi-weekly sprint, regroup,
reorganize
6. At the end of timeline repeat Step 1
16. Upgrading a Cluster
• Assumptions: AWS, EKS Terraform Module
1. Configure Cluster Autoscaler (CA) (github kubernetes/autoscaler)
2. Run Terraform changes to update Launch Config to new AMI
3. kubectl drain --force --ignore-daemonsets --delete-local-data
nodeA
4. Workloads will be rescheduled to untainted nodes
5. CA will create new nodes
6. Repeat steps 3 through 5
7. CA will terminate old nodes automatically
Additionally...
8. Kube-proxy, CoreDNS, Amazon VPC CNI, GPU support etc