Leif160519的blog Leif160519的blog

——————

目录
《每天5分钟玩转Kubernetes》读书笔记
/      

《每天5分钟玩转Kubernetes》读书笔记


image.png

下载链接:https://github.icu/downloads/books/k8s/每天5分钟玩转Kubernetes.pdf

百度云:链接:https://pan.baidu.com/s/1eUJzQVGFMXuMXM3SwGjcFw 密码:47bp

2019年09月24日

第1章 先把Kubernetes跑起来

1.2 创建kubernetes集群

查看集群信息

kubectl cluster-info

image.png

1.3 部署应用

Deployment:可以理解为应用
Pod:是容器的集合,通常会将紧密相关的一组容器放到一个pod中,同一个pod中的所有容器共享IP地址和Port空间,也就是说他们在一个network namespace中。
是K8S调度的最小单位,同一个pod中的容器始终被一起调度。

查看当前pod

kubectl get pods

image.png

1.4 访问应用

查看应用被映射到节点的哪个端口

kubectl get services

image.png

service:暂时理解为端口映射

1.5 scale应用

查看副本数

kubectl get deployments

image.png

增加副本数(扩容)

kubectl scale deployments/kubernetes-bootcamp --replicas=3

image.png

通过kubectl get pods 可以看到当前Pod增加到了三个
image.png

使用curl命令访问应用可以看到负载均衡的效果
image.png

删除一个副本(缩容)

kubectl scale deployments/kubernetes-bootcamp --replicas=2

image.png

1.6 滚动更新

将v1升级到v2

kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatlin/kubernetes-bootcamp:v2

image.png

可以看出 v1的pod被诸葛删除,同时启用了新的v2 pod
image.png

将v2降级到v1

kubectl rollout undo deployments/kubernetes-bootcamp

image.png

image.png

2019年09月25日

第2章 重要概念

1.Cluster: 是计算、存储和网络资源的集合

2.Master: 是Cluster的大脑,主要负责调度,可以运行多个Master来实现高可用

3.Node:职责是运行容器应用。Node由Master管理,Node负责监控并汇报容器的状态,同时根据Master的要求管理容器的生命周期。如果Cluster只有一个主机,那么它既是Master也是Node。

4.Pod:是K8S的最小工作单元。每个Pod包含一个或多个容器。Pod中的容器会作为一个整体被Master调度到一个Node上运行。

5.Controller:K8S通过Controller来管理Pod。Controller中定义了Pod的部署特性,比如有几个副本、在什么样的Node上运行等。K8S提供了多种Controller:

  • Deployment:可以管理Pod的多个副本并确保Pod按照期望的状态运行

  • ReplicaSet:实现了Pod的多副本管理。使用Deployment会自动创建ReplicaSet,Deployment通过ReplicaSet来管理Pod的多个副本,一般不直接使用ReplicaSet。

  • DaemonSet:用于每隔Node最多只运行一个Pod副本的场景。DaemonSet通常用于运行daemon。

  • StatefuleSet:能够保证Pod的每个副本在整个生命周期中是不变的,而其他Controller不提供这个功能。当某个Pod发生故障需要删除并重新启动时,Pod的名称会发生变化,同时StatefuleSet会保证副本按照固定顺序启动、更新或者删除。

  • Job:用于运行结束就删除的应用,而其他Controller中的Pod通常是长期持续运行。

6.Service:K8S Service定义了外界访问一组特定Pod的方式。Service有自己的IP和端口,Service为Pod提供了负载均衡。K8S运行容器(Pod)与访问容器(Pod)这两个任分别由Controller和Service执行

7.Namespace:可以将物理的Cluster逻辑上划分成多个虚拟Cluster,每个Cluster就是一个Namespace、不同的Namespace里的资源是完全隔离的。K8S默认创建了两个Namespace。

image.png

  • default:创建资源时如果不指定,将被放到这个Namespace中

  • kube-system:K8S自己创建的系统资源将放到这个Namespace中。


“The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.” – Tom Cargill

标  题《每天5分钟玩转Kubernetes》读书笔记
作  者Leif160519
出  处https://github.icu/articles/2019/09/18/1568772630383.html
关于博主:坐标南京,运维工程师,如有问题探讨可以直接下方留言。
声援博主:如果您觉得文章对您有帮助,可以评论、订阅、收藏。您的鼓励是博主的最大动力!