0% found this document useful (0 votes)
36 views34 pages

PowerPoint Presentation Kubernetes+ CKA +0200+ +scheduling

Uploaded by

redhatlnxos
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)
36 views34 pages

PowerPoint Presentation Kubernetes+ CKA +0200+ +scheduling

Uploaded by

redhatlnxos
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/ 34

Course Objectives

Scheduling
Manual Scheduling Labels & Selectors

daemon Sets Multiple Schedulers

Configure Kubernetes Scheduler


Logging Monitoring

Application Lifecycle Management

Cluster Maintenance

Security

Storage

Troubleshooting
MANUAL
SCHEDULING
How scheduling work

What to Schedule?

nodeName: nodeName: nodeName: nodeName:


node01 node01 ???? node02

Which node to schedule?

nodeName:
(Schedule)Bind Pod to Node node02
No Scheduler!
kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx 0/1 Pending 0 3s

kubectl get pods


NAME READY STATUS RESTARTS AGE IP NODE
nginx 1/1 Running 0 9s 10.40.0.4 node
No Scheduler!
Pod-bind-definition.yaml
apiVersion: v1
kind: Binding
metadata:
name: nginx
target:
apiVersion: v1
kind: Node
'{"apiVersion":"v1", "kind": "Binding“ …. }
name:

curl --header "Content-Type:application/json" --request POS


http://$SERVER/api/v1/namespaces/default/pods/$PODNAME/bindin
Course Objectives

Scheduling
Manual Scheduling Labels & Selectors

daemon Sets Multiple Schedulers

Configure Kubernetes Scheduler


Logging Monitoring

Application Lifecycle Management

Cluster Maintenance

Security

Storage

Troubleshooting
Daemon
Sets
Daemon Sets

Daemon Sets

ReplicaSet
Deployments
Daemon Sets – UseCa
Monitoring Solution Log

Daemon Sets
Daemon Sets – UseCase

Kube-proxy Kube-proxy Kube-proxy Kube-proxy

Daemon Sets
Daemon Sets – UseCase

Weave-net weave-net weave-net weave-net

Daemon Sets
DaemonSet Definition
daemon-set-definition.yaml repli
apiVersion: apps/v1 apiV
kind: DaemonSet kind
metadata: meta
name: monitoring-daemon na
spec: spec
selector: se
matchLabels:
app: monitoring-agent
template: te
metadata:
labels:
app: monitoring-agent
spec:
containers:
- name: monitoring-agent
image: monitoring-agent

kubectl create –f daemon-set-definition.yaml


daemon-set Created
View DaemonSets
kubectl get daemonsets
NAME DESIRED CURRENT READY UP-TO-DATE A
monitoring-daemon 1 1 1 1 1

kubectl describe daemonsets monitoring-daemon


Name: monitoring-daemon
Selector: name=monitoring-daemon
Node-Selector: <none>
Labels: name=monitoring-daemon
Desired Number of Nodes Scheduled: 2
Current Number of Nodes Scheduled: 2
Number of Nodes Scheduled with Up-to-date Pods: 2
Number of Nodes Scheduled with Available Pods: 1
Number of Nodes Misscheduled: 0
Pods Status: 2 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
Labels: app=monitoring-agent
Containers:
How does it work?

nodeName: nodeName: nodeName: nodeNam


node01 node02 node03 node04
Course Objectives

Scheduling
Manual Scheduling Labels & Selectors

daemon Sets Multiple Schedulers

Configure Kubernetes Scheduler


Logging Monitoring

Application Lifecycle Management

Cluster Maintenance

Security

Storage

Troubleshooting
MULTIPLE
SCHEDULERS
Master
Manage, Plan, Schedule, Monitor
Nodes

Sch

Kube-S
Deploy Additional Sch
wget https://storage.googleapis.com/kubernetes-release/rele

kube-scheduler.service
ExecStart=/usr/local/bin/kube-scheduler \\
--config=/etc/kubernetes/config/kube-scheduler.yaml \\
--scheduler-name= default-scheduler

my-custom-scheduler.service
ExecStart=/usr/local/bin/kube-scheduler \\
--config=/etc/kubernetes/config/kube-scheduler.yaml \\
--scheduler-name= my-custom-scheduler
Deploy Additional Sche
/etc/kubernetes/manifests/kube-scheduler.yaml my-cus
apiVersion: v1 apiVer
kind: Pod kind:
metadata: metada
name: kube-scheduler name
namespace: kube-system name
spec: spec:
containers: cont
- command: - co
- kube-scheduler -
- --address=127.0.0.1 -
- --kubeconfig=/etc/kubernetes/scheduler.conf -
- --leader-elect=true -
image: k8s.gcr.io/kube-scheduler-amd64:v1.11.3 im
-
name: kube-scheduler na
-
View Schedulers
kubectl get pods --namespace=kube-system
NAME READY STATUS RESTARTS
coredns-78fcdf6894-bk4ml 1/1 Running 0
coredns-78fcdf6894-ppr6m 1/1 Running 0
etcd-master 1/1 Running 0
kube-apiserver-master 1/1 Running 0
kube-controller-manager-master 1/1 Running 0
kube-proxy-dgbgv 1/1 Running 0
kube-proxy-fptbr 1/1 Running 0
kube-scheduler-master 1/1 Running 0
my-custom-scheduler 1/1 Running 0
weave-net-4tfpt 2/2 Running 1
weave-net-6j6zs 2/2 Running 1
Use Custom Schedule
kubectl get pods --namespace=kube-system
NAME READY STATUS RESTARTS AGE
coredns-78fcdf6894-bk4ml 1/1 Running 0 1h
coredns-78fcdf6894-ppr6m 1/1 Running 0 1h
etcd-master 1/1 Running 0 1h
kube-apiserver-master 1/1 Running 0 1h
kube-controller-manager-master 1/1 Running 0 1h
kube-proxy-dgbgv 1/1 Running 0 1h
kube-proxy-fptbr 1/1 Running 0 1h
kube-scheduler-master 1/1 Running 0 1h
my-custom-scheduler
my-custom-scheduler 1/1 Running 0 9s
weave-net-4tfpt 2/2 Running 1 1h
weave-net-6j6zs 2/2 Running 1 1h

kubectl get pods

NAME READY STATUS RESTARTS AGE


nginx 0/1 Pending 0 6s
View Events
kubectl get events
LAST SEEN COUNT NAME KIND TYPE REASON SOURCE
9s 1 nginx.15 Pod Normal Scheduled my-custom-schedul
8s 1 nginx.15 Pod Normal Pulling kubelet, node01
2s 1 nginx.15 Pod Normal Pulled kubelet, node01
2s 1 nginx.15 Pod Normal Created kubelet, node01
2s 1 nginx.15 Pod Normal Started kubelet, node01
View Scheduler Logs
kubectl logs my-custom-scheduler --name-space=kube-system
I0204 09:42:25.819338 1 server.go:126] Version: v1.11.3
W0204 09:42:25.822720 1 authorization.go:47] Authorization is disabled
W0204 09:42:25.822745 1 authentication.go:55] Authentication is disable
I0204 09:42:25.822801 1 insecure_serving.go:47] Serving healthz insecur
I0204 09:45:14.725407 1 controller_utils.go:1025] Waiting for caches to
I0204 09:45:14.825634 1 controller_utils.go:1032] Caches are synced for
I0204 09:45:14.825814 1 leaderelection.go:185] attempting to acquire le
I0204 09:45:14.834953 1 leaderelection.go:194] successfully acquired le
Course Objectives

Scheduling
Labels & Selectors Resource Limits

daemon Sets Multiple Schedulers

Configure Kubernetes Scheduler


Logging Monitoring

Application Lifecycle Management

Cluster Maintenance

Security

Storage

Troubleshooting
CONFIGURING
SCHEDULER
Deploy Additional Sch
wget https://storage.googleapis.com/kubernetes-release/rele

kube-scheduler.service
ExecStart=/usr/local/bin/kube-scheduler \\
--config=/etc/kubernetes/config/kube-scheduler.yaml \\
--scheduler-name= default-scheduler

my-custom-scheduler.service
ExecStart=/usr/local/bin/kube-scheduler \\
--config=/etc/kubernetes/config/kube-scheduler.yaml \\
--scheduler-name= my-custom-scheduler
Deploy Additional Sche
/etc/kubernetes/manifests/kube-scheduler.yaml my-cus
apiVersion: v1 apiVer
kind: Pod kind:
metadata: metada
name: kube-scheduler name
namespace: kube-system name
spec: spec:
containers: cont
- command: - co
- kube-scheduler -
- --address=127.0.0.1 -
- --kubeconfig=/etc/kubernetes/scheduler.conf -
- --leader-elect=true -
image: k8s.gcr.io/kube-scheduler-amd64:v1.11.3 im
-
name: kube-scheduler na
-
Course Objectives

Scheduling

Logging Monitoring
Secrets
Application Lifecycle Management

Cluster Maintenance

Security
Authentication & Authorization TLS C

Kubernetes Security Image

Network Policies Secur

Storage

Troubleshooting
AUTHENTICATIO

You might also like