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

本贴最后更新于 1846 天前,其中的信息可能已经水流花落


image.png

下载链接:https://leif.fun/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 中。

  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    110 引用 • 54 回帖 • 3 关注
  • 笔记

    好记性不如烂笔头。

    308 引用 • 793 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...