0% found this document useful (0 votes)
84 views121 pages

Kube Overview Workshop - v1

This document provides an overview of using Kubernetes on Nutanix Calm. It covers 5 modules: 1) Kubernetes introduction which discusses containers, orchestration tools and Kubernetes features 2) Kubernetes cluster architecture including the master node, worker nodes, pods, services and namespaces 3) Deploying pods, services, deployments and using namespaces 4) Using persistent volumes and volume claims to store persistent data 5) Deploying and managing a Kubernetes cluster using the Nutanix Calm service. It discusses the deployment process, accessing the Kubernetes dashboard, creating namespaces and deployments.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
84 views121 pages

Kube Overview Workshop - v1

This document provides an overview of using Kubernetes on Nutanix Calm. It covers 5 modules: 1) Kubernetes introduction which discusses containers, orchestration tools and Kubernetes features 2) Kubernetes cluster architecture including the master node, worker nodes, pods, services and namespaces 3) Deploying pods, services, deployments and using namespaces 4) Using persistent volumes and volume claims to store persistent data 5) Deploying and managing a Kubernetes cluster using the Nutanix Calm service. It discusses the deployment process, accessing the Kubernetes dashboard, creating namespaces and deployments.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 121

การใช้ งาน Kubernetes เบือ- งต้ นบน Nutanix Calm

02-09-2564

1
Module 1 : Kubernetes Introduction
Module 2 : Kubernetes Cluster Architecture
Module 3 : Pod/Service/Deployment/Namespaces
Module 4 : Persistent Volumes and Persistent Volume Cliams
Module 5 : Deploy/Manage Kubernetes with Nutanix Calm

2
Module 1
Kubernetes Introduction

3
Getting Started

Virtual Machines and Containers


Getting Started

Why use “Containers”?


Getting Started

Containers : Packages to get software to run reliably


Getting Started

Container Orchestration Tool


Getting Started

Container Orchestration - Kubernetes


Getting Started

Kubernetes Features

Provisioning& Service Discovery&


Self-Healing Storage Orchestrator Auto-Scaling Run Anywhere
Deployment Load Balancing

Automatic Rollout Secret & Configuration


REST API Security Cluster Scale
& Rollback Management
Kubernetes Benefits

Kubernetes (k8s) – Key Benefits


Kubernetes Benefits

Portability – Cloud Agnostic


Kubernetes Benefits

Portability – Focus on building key product


Kubernetes Benefits

Portability – Faster speed to market


Kubernetes Benefits

Portability – Faster speed to market

Developer pushes to git repository

GitHub Webhook Jenkins copies GitHub Repo


Triggers Jenkins • Dockerfile
• App code
• Test code

Jenkins has Docker build


an image based on the
Dockerfile

Jenkins Deploys the container


with the application code
and desired tests are executed
14
Kubernetes Benefits

Scalability– Manual scaling is inconsistent


Kubernetes Benefits

Scalability– Monolithic scaling is expensive


Kubernetes Benefits

Scalability– Autoscaling
Kubernetes Benefits

High Availability – Self-healing


Kubernetes Benefits

High Availability – Load Balancing


Module 2
Kubernetes Cluster Architecture

20
Kubernetes Cluster Architecture

Kubernetes Clusters
Kubernetes Cluster Architecture

Kubernetes Clusters
Kubernetes Cluster Architecture

High Level Architecture


Kubernetes Cluster Architecture

Master Node : API Server


Kubernetes Cluster Architecture

Master Node : Scheduler


Kubernetes Cluster Architecture

Master Node : Scheduler


Kubernetes Cluster Architecture

Master Node : Scheduler


Kubernetes Cluster Architecture

Master Node : Controller Manager


Kubernetes Cluster Architecture

Master Node : Controller Manager

https://medium.com/@chaiwat.dec/kubernetes-basic-%E0%B8%95%E0%B8%AD%E0%B8%99%E0%B8%97%E0%B8%B5%E0%B9%88-1-architecture-de11b509eceb
Kubernetes Cluster Architecture

Master Node : Controller Manager


Kubernetes Cluster Architecture

Master Node : etcd


Kubernetes Cluster Architecture

Worker Nodes
Kubernetes Cluster Architecture

Worker Nodes : Kubelet


Kubernetes Cluster Architecture

Worker Nodes : Kube-Proxy


Kubernetes Cluster Architecture

Worker Nodes : Container Runtime


Kubernetes Cluster Architecture

High Level Architecture


Design Cluster

Resources Requirement in the Pod


Design Cluster

Number of Worker Nodes in the Cluster


Design Cluster

Application Pod in the Cluster


Design Cluster

Size of Master Nodes


Troubleshoot Cluster

Listing Cluster
Troubleshoot Cluster

Looking at Logs

https://kubernetes.io/docs/tasks/debug-application-cluster/debug-cluster/
Module 3
Pod/Service/Deployment/Namespaces

43
Kubernetes Cluster Architecture

Pods

• The smallest object that you can create in Kubernetes


Kubernetes Cluster Architecture

Pods

• The smallest object that you can create in Kubernetes


• One Pod may have multiple Containers eg. Side Car Agent
Kubernetes Cluster Architecture

Pods -Declarative

• Declarative configurations are defined using YAML file


Kubernetes Cluster Architecture

Pods -Declarative
Kubernetes Cluster Architecture

Pods -Declarative
Kubernetes Cluster Architecture

Pods -Declarative
Kubernetes Cluster Architecture

Pods -Declarative
Kubernetes Cluster Architecture

Pods -Declarative
Kubernetes Cluster Architecture

Pods – Output to YAML


Kubernetes Cluster Architecture

ReplicaSet
• Construct that runs multiple instances of the same Pod
Kubernetes Cluster Architecture

ReplicaSet : Self-healing
Kubernetes Cluster Architecture

ReplicaSet : Self-healing
Kubernetes Cluster Architecture

ReplicaSet - Autoscaling
Kubernetes Cluster Architecture

Deployment
Kubernetes Cluster Architecture

Deployment – Rolling Update

Updating

Completed
Services

Services
Services

ClusterIP – Internal Communication


Services

ClusterIP – Internal Communication


Services

NodePort – External Access


Services

NodePort – External Access


Services

NodePort – External Access


Services

Microservice Architecture Example


Management

Namespaces
Management

Namespaces
Management

Namespaces
Management

Namespaces
Management

Namespaces
Management

Namespaces : Resource Quota


Module 4
Persistent Volumes and Persistent Volume Claims

75
Persistent Volumes and Persistent Volume Claims

Pods are ephemeral

- Required storage for store persistent data


Persistent Volumes and Persistent Volume Claims

How do you store data?

- Each Pod has own data


Persistent Volumes and Persistent Volume Claims

How do you store data?

- The Pod can access own data from every nodes


Persistent Volumes and Persistent Volume Claims

Persistent Volumes

- Persistent Volume (PV) is interface to actual storage


Persistent Volumes and Persistent Volume Claims

Persistent Volume Claims


Persistent Volumes and Persistent Volume Claims

K8s Admin and K8s User


Persistent Volumes and Persistent Volume Claims

K8s Admin and K8s User


Persistent Volumes and Persistent Volume Claims

Nutanix ABS – Storage Class


Persistent Volumes and Persistent Volume Claims

Nutanix ABS
- Provide Storage Class (Dynamic PV)
Persistent Volumes and Persistent Volume Claims

Nutanix ABS
Persistent Volumes and Persistent Volume Claims

Nutanix ABS
Persistent Volumes and Persistent Volume Claims

Nutanix ABS – Deploy by Calm

- Deploy K8s Cluster by Calm K8s blueprint, also provide Nutanix Storage Class
Persistent Volumes and Persistent Volume Claims

Nutanix ABS – Deploy by Calm

- Deploy K8s Cluster by Calm K8s blueprint, also provide Nutanix Storage Class
Persistent Volumes and Persistent Volume Claims

Nutanix ABS – Deploy by Calm


Module 5
Deploy/Manage Kubernetes Cluster
with Nutanix Calm

90
Deploy Kubernetes Cluster with Nutanix Calm

Deployment Steps
1. Select Blueprint from Market place
2. Generate SSH Key Pair
3. Launch deployment
4. Create Service Account
5. Kubernetes web UI dashboard
6. Create namespace
7. Create deployment
8. Create service
Deploy Kubernetes Cluster with Nutanix Calm

Select K8S Blueprint on Calm

• Login to prism central


• Go to Services > Calm > Marketplace
• Select K8S-DGT Blueprint
Deploy Kubernetes Cluster with Nutanix Calm

Generating an SSH Key Pair each Nodes Credential

• Generate SSH Key on a Linux VM


Deploy Kubernetes Cluster with Nutanix Calm

Generating an SSH Key Pair each Nodes Credential

• Generate SSH Key on Windows VM


Deploy Kubernetes Cluster with Nutanix Calm

Required Inputs for K8S Blueprint

• Click Get to see blueprint detail


• Click Lunch to deploy blueprint
• Prepare input variable
1. Application Name
2. id_rsa_pub
3. KUBE_CLUSTER_NAME
4. SSH User, private key
• Click Deploy button
Deploy Kubernetes Cluster with Nutanix Calm

Required Inputs for K8S Blueprint

• Click Get to see blueprint detail


• Click Lunch to deploy blueprint
• Prepare input variable
1. Application Name
2. id_rsa_pub
3. KUBE_CLUSTER_NAME
4. SSH User, private key
• Click Deploy button
4
Deploy Kubernetes Cluster with Nutanix Calm

Completed Deployment K8S Cluster

97
Deploy Kubernetes Cluster with Nutanix Calm

Completed Deployment K8S Cluster

When deploy completed


Manage Kubernetes Cluster with Nutanix Calm

Manage K8s Cluster


Manage Kubernetes Cluster with Nutanix Calm

Upgrade K8s Cluster


- Input target version of K8s
Manage Kubernetes Cluster with Nutanix Calm

Scale Out (Worker Node)


- Input number of worker nodes which will be added

101
Manage Kubernetes Cluster with Nutanix Calm

Scale In (Worker Node)


- Input number of worker nodes which will be removed

102
Manage Kubernetes Cluster with Nutanix Calm

Delete Cluster
- Delete both VM and Application in Calm

103
Manage Kubernetes Cluster with Nutanix Calm

Soft Delete Cluster


- Delete only Application in Calm, VM need manual remove

104
Deploy Kubernetes Cluster with Nutanix Calm

Access K8s Web UI

Verify K8s Web UI Service


Deploy Kubernetes Cluster with Nutanix Calm

Access K8s Web UI

• Create service account name admin-user , namespace default

• Create cluster role binding to admin-user as cluster-admin, namespace default


Deploy Kubernetes Cluster with Nutanix Calm

Access K8s Web UI

• Check user
• kubectl get serviceaccounts -n default

• Get secret
• kubectl -n default describe secret $(kubectl -n default get secret | grep admin-user | awk '{print $1}’)
Deploy Kubernetes Cluster with Nutanix Calm

Access K8s Web UI

• Open Kubernetes Dashboard select Token and paste token here then sign in
dashboard.
Deploy Kubernetes Cluster with Nutanix Calm

Example Deploy Simple Service

• Create namespace with Kubernetes dashboard


• Click CREATE
• Input YAML Code or JSON
• Click UPLOAD
Deploy Kubernetes Cluster with Nutanix Calm

Example Deploy Simple Service

• Create namespace with Kubernetes dashboard


• After upload code go to Menu Cluster > Namespaces
Deploy Kubernetes Cluster with Nutanix Calm

Example Deploy Simple Service

• Create deployment in demoapp


namespace
• Prepare file deployment
• Create nginx 2 pods
• Kind : Deployment
• Name : nginx-deployment
• Replicas : 2
• Labels : nginx
• Image : nignx:1.15.4
• Ports : 80
Deploy Kubernetes Cluster with Nutanix Calm

Example Deploy Simple Service

• Create deployment in demoapp namespace


• Select namespace demoapp
• Click Create > CREATE FROM FILE
• Brose file YAML to create deployment
• Click UPLOAD
Deploy Kubernetes Cluster with Nutanix Calm

Example Deploy Simple Service

• Create deployment in demoapp namespace


• Deployments : nginx-deployment and Pods will create on demoapp namespace
Deploy Kubernetes Cluster with Nutanix Calm

Example Deploy Simple Service

• Click at pod name to see detail or exec console


Deploy Kubernetes Cluster with Nutanix Calm

Example Deploy Simple Service

• Scale a deployment
• Menu Deployment > Select deployment > SCALE
• Input Desire number of pods then click OK
Deploy Kubernetes Cluster with Nutanix Calm

Example Deploy Simple Service


Deploy Kubernetes Cluster with Nutanix Calm

Example Deploy Simple Service

• Create Node pod service


• Prepare file to deployment
• Kind : Service
• Name: nginx-service
• App: nginx **match app label pod
• Type : NodePort
• targetPort : 80 ** container port
• nodePort : 30081

** Since this is a NodePort service,


you should be able to access it using port 30081
on any of your cluster's servers
Deploy Kubernetes Cluster with Nutanix Calm

Example Deploy Simple Service

• Create Node pod service


• Select namespace demoapp
• Click Create > CREATE FROM FILE
• Brose file YAML to create deployment
• Click UPLOAD
Deploy Kubernetes Cluster with Nutanix Calm

Example Deploy Simple Service

• Create Node pod service


Deploy Kubernetes Cluster with Nutanix Calm

Example Deploy Simple Service

• Create Node pod service


you should be able to access it using port 30081 on any of your cluster's servers
1

You might also like