负载均衡案例
docker pull jocatalin/kubernetes-bootcamp:v1
kubectl create deployment nginx --image=docker.io/jocatalin/kubernetes-bootcamp:v1
kubectl expose deployment/nginx --type=NodePort --port=8080
kubectl scale deployment/nginx --replicas=3
curl 192.168.99.100:31472
curl 192.168.99.100:31472
curl 192.168.99.100:31472

滚动更新案例
kubectl set image deployments/nginx kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2

版本回退
kubectl rollout undo deployments/nginx

什么是Cluster?
什么是Master?
什么是Node?
什么是Pod?
什么是Controller?
Controller的种类? Deployment , ReplicaSet , DaemonSet , StatefulSet , Job .

(1)Deployment是最常用的Controller,比如在线教程中就是通
过创建Deployment来部署应用的。Deployment可以管理Pod的多个副
本,并确保Pod按照期望的状态运行。
(2)ReplicaSet实现了Pod的多副本管理。使用Deployment时会
自动创建ReplicaSet,也就是说Deployment是通过ReplicaSet来管理
Pod的多个副本的,我们通常不需要直接使用ReplicaSet。
(3)DaemonSet用于每个Node最多只运行一个Pod副本的场景。
正如其名称所揭示的,DaemonSet通常用于运行daemon。
(4)StatefuleSet能够保证Pod的每个副本在整个生命周期中名称
是不变的,而其他Controller不提供这个功能。当某个Pod发生故障需
要删除并重新启动时,Pod的名称会发生变化,同时StatefuleSet会保
证副本按照固定的顺序启动、更新或者删除。
(5)Job用于运行结束就删除的应用,而其他Controller中的Pod
通常是长期持续运行。

Service

Namespace

给节点设置label
kubectl label node k8s-node1 disktype=ssd

kubectl get node --show-labels

删除label
kubectl label node k8s-node1 disktype-

DaemonSet
Deployment部署的副本Pod会分布在各个Node上,每个Node都可
能运行好几个副本。DaemonSet的不同之处在于:每个Node上最多只
能运行一个副本

DaemonSet的典型应用场景有:
(1)在集群的每个节点上运行存储Daemon,比如glusterd或
ceph。
(2)在每个节点上运行日志收集Daemon,比如flunentd或
logstash。
(3)在每个节点上运行监控Daemon,比如Prometheus Node
Exporter或collectd。

查询ds
kubectl get daemonset --namespace=kube-system

Logo

开源、云原生的融合云平台

更多推荐