K8S
文章平均质量分 64
K8S
诸葛钢铁云
这个作者很懒,什么都没留下…
展开
-
并行执行 Job - 每天5分钟玩转 Docker 容器技术(134)
并行执行 Job - 每天5分钟玩转 Docker 容器技术(134)原创CloudManCloudMan2018-02-26第134篇并行执行 Job有时,我们希望能同时运行多个 Pod,提高 Job 的执行效率。这个可以通过parallelism设置。这里我们将并行的 Pod 数量设置为 2,实践一下:Job 一共启动了两个 Pod,而且AGE相同,可见是并行运行的。我们还可以通过completions设置 Job 成功完成 Pod 的总数:...转载 2020-12-05 10:07:47 · 123 阅读 · 0 评论 -
Job 失败了怎么办?- 每天5分钟玩转 Docker 容器技术(133)
Job 失败了怎么办?- 每天5分钟玩转 Docker 容器技术(133)原创CloudManCloudMan2018-02-23第133篇Job 失败了怎么办?上一节讨论了 Job 执行成功的情况,如果失败了会怎么样呢?修改 myjob.yml,故意引入一个错误:先删除之前的 Job:如果将restartPolicy设置为OnFailure会怎么样?下面我们实践一下,修改 myjob.yml 后重新启动。运行新的 Job 并查看状态:当前SU...转载 2020-12-05 10:07:34 · 257 阅读 · 0 评论 -
用 k8s 运行一次性任务 - 每天5分钟玩转 Docker 容器技术(132)
用 k8s 运行一次性任务 - 每天5分钟玩转 Docker 容器技术(132)原创CloudManCloudMan2018-02-21第132篇用 k8s 运行一次性任务容器按照持续运行的时间可分为两类:服务类容器和工作类容器。服务类容器通常持续提供服务,需要一直运行,比如 http server,daemon 等。工作类容器则是一次性任务,比如批处理程序,完成后容器就退出。Kubernetes 的 Deployment、ReplicaSet 和 DaemonSet 都...转载 2020-12-05 10:07:24 · 299 阅读 · 0 评论 -
运行自己的 Daemoet - 每天5分钟玩转 Docker 容器技术(131nS)
运行自己的 Daemoet - 每天5分钟玩转 Docker 容器技术(131nS)CloudMan2018-02-19第131篇运行自己的 DaemonSet本节以 Prometheus Node Exporter 为例演示如何运行自己的 DaemonSet。Prometheus 是流行的系统监控方案,Node Exporter 是 Prometheus 的 agent,以 Daemon 的形式运行在每个被监控节点上。如果是直接在 Docker 中运行 Node Exporter.转载 2020-12-05 10:07:13 · 148 阅读 · 0 评论 -
DaemonSet 案例分析 - 每天5分钟玩转 Docker 容器技术(130)
DaemonSet 案例分析 - 每天5分钟玩转 Docker 容器技术(130)原创CloudManCloudMan2018-02-16第130篇DaemonSet 案例分析本节详细分析两个 k8s 自己的 DaemonSet:kube-flannel-ds和kube-proxy。kube-flannel-ds下面我们通过分析kube-flannel-ds来学习 DaemonSet。还记得之前是如何部署 flannel 网络的吗?我们执行了如下两个命令:k...转载 2020-12-05 10:07:02 · 182 阅读 · 0 评论 -
DaemonSet 典型应用 - 每天5分钟玩转 Docker 容器技术(129)
DaemonSet 典型应用 - 每天5分钟玩转 Docker 容器技术(129)原创CloudManCloudMan2018-02-14第129篇DaemonSet 典型应用Deployment 部署的副本 Pod 会分布在各个 Node 上,每个 Node 都可能运行好几个副本。DaemonSet 的不同之处在于:每个 Node 上最多只能运行一个副本。DaemonSet 的典型应用场景有: 在集群的每个节点上运行存储 Daemon,比如 glusterd 或 ceph。...转载 2020-12-04 06:22:22 · 162 阅读 · 0 评论 -
用 label 控制 Pod 的位置 - 每天5分钟玩转 Docker 容器技术(128)
用 label 控制 Pod 的位置 - 每天5分钟玩转 Docker 容器技术(128)原创CloudManCloudMan2018-02-12第128篇用 label 控制 Pod 的位置默认配置下,Scheduler 会将 Pod 调度到所有可用的 Node。不过有些情况我们希望将 Pod 部署到指定的 Node,比如将有大量磁盘 I/O 的 Pod 部署到配置了 SSD 的 Node;或者 Pod 需要 GPU,需要运行在配置了 GPU 的节点上。Kubernetes 是通...转载 2020-12-04 06:22:12 · 172 阅读 · 0 评论 -
k8s 如何 Failover?- 每天5分钟玩转 Docker 容器技术(127)
k8s 如何 Failover?- 每天5分钟玩转 Docker 容器技术(127)原创CloudManCloudMan2018-02-02第127篇k8s 如何 Failover?上一节我们有 3 个 nginx 副本分别运行在 k8s-node1 和 k8s-node2 上。现在模拟 k8s-node2 故障,关闭该节点。等待一段时间,Kubernetes 会检查到 k8s-node2 不可用,将 k8s-node2 上的 Pod 标记为Unknown状态,并在 k8s...转载 2020-12-04 06:22:02 · 142 阅读 · 0 评论 -
如何 Scale Up/Down?- 每天5分钟玩转 Docker 容器技术(126)
如何 Scale Up/Down?- 每天5分钟玩转 Docker 容器技术(126)原创CloudManCloudMan2018-01-31第126篇如何 Scale Up/Down?伸缩(Scale Up/Down)是指在线增加或减少 Pod 的副本数。Deploymentnginx-deployment初始是两个副本。k8s-node1和k8s-node2上各跑了一个副本。现在修改 nginx.yml,将副本改成 5 个。再次执行kubectl ap...转载 2020-12-04 06:21:51 · 485 阅读 · 0 评论 -
读懂 Deployment YAML - 每天5分钟玩转 Docker 容器技术(125)
读懂 Deployment YAML - 每天5分钟玩转 Docker 容器技术(125)原创CloudManCloudMan2018-01-29第125篇读懂 Deployment YAML既然要用 YAML 配置文件部署应用,现在就很有必要了解一下 Deployment 的配置格式,其他 Controller(比如 DaemonSet)非常类似。还是以 nginx-deployment 为例,配置文件如下图所示:①apiVersion是当前配置格式的版本。②...转载 2020-12-04 06:21:38 · 292 阅读 · 0 评论 -
k8s 创建资源的两种方式 - 每天5分钟玩转 Docker 容器技术(124)
k8s 创建资源的两种方式 - 每天5分钟玩转 Docker 容器技术(124)CloudMan2018-01-26第124篇k8s 创建资源的两种方式命令 vs 配置文件Kubernetes 支持两种方式创建资源:1.用 kubectl 命令直接创建,比如:kubectl run nginx-deployment --image=nginx:1.7.9 --replicas=2在命令行中通过参数指定资源的属性。2. 通过配置文件和kubectl apply创建...转载 2020-12-04 06:21:27 · 122 阅读 · 0 评论 -
用 Deployment 运行应用 - 每天5分钟玩转 Docker 容器技术(123)
用 Deployment 运行应用 - 每天5分钟玩转 Docker 容器技术(123)原创CloudManCloudMan2018-01-24第123篇用 Deployment 运行应用从本章开始,我们将通过实践深入学习 Kubernetes 的各种特性。作为容器编排引擎,最重要也是最基本的功能当然是运行容器化应用,这就是本章的内容。Deployment前面我们已经了解到,Kubernetes 通过各种 Controller 来管理 Pod 的生命周期。为了满足不同业务...转载 2020-12-04 06:21:16 · 295 阅读 · 0 评论 -
通过例子理解 k8s 架构 - 每天5分钟玩转 Docker 容器技术(122)
通过例子理解 k8s 架构 - 每天5分钟玩转 Docker 容器技术(122)CloudMan2018-01-22第122篇通过例子理解 k8s 架构为了帮助大家更好地理解 Kubernetes 架构,我们部署一个应用来演示各个组件之间是如何协作的。执行命令:kubectlrunhttpd-app--image=httpd--replicas=2等待一段时间,应用部署完成。Kubernetes 部署了 deploymenthttpd-app,有两个副...转载 2020-12-04 06:20:25 · 138 阅读 · 0 评论 -
Kubernetes 架构(下)- 每天5分钟玩转 Docker 容器技术(121)
Kubernetes 架构(下)- 每天5分钟玩转 Docker 容器技术(121)原创CloudManCloudMan2018-01-19第121篇Kubernetes 架构(下)上一节我们讨论了 Kubernetes 架构Master 上运行的服务,本节讨论 Node 节点。Node 是 Pod 运行的地方,Kubernetes 支持 Docker、rkt 等容器 Runtime。 Node上运行的 Kubernetes 组件有 kubelet、kube-proxy 和 Po...转载 2020-12-04 06:20:13 · 88 阅读 · 0 评论 -
Kubernetes 架构(上)- 每天5分钟玩转 Docker 容器技术(120)
Kubernetes 架构(上)- 每天5分钟玩转 Docker 容器技术(120)原创CloudManCloudMan2018-01-17第120篇Kubernetes 架构(上)Kubernetes Cluster 由 Master 和 Node 组成,节点上运行着若干 Kubernetes 服务。Master 节点Master 是 Kubernetes Cluster 的大脑,运行着如下 Daemon 服务:kube-apiserver、kube-sch...转载 2020-12-04 06:20:03 · 101 阅读 · 0 评论 -
部署 k8s Cluster(下)- 每天5分钟玩转 Docker 容器技术(119)
部署 k8s Cluster(下)- 每天5分钟玩转 Docker 容器技术(119)原创CloudManCloudMan2018-01-15第119篇部署 k8s Cluster(下)上节我们通过 kubeadm 在 k8s-master 上部署了 Kubernetes,本节安装 Pod 网络并添加 k8s-node1 和 k8s-node2,完成集群部署。安装 Pod 网络要让 Kubernetes Cluster 能够工作,必须安装 Pod 网络,否则 Pod...转载 2020-12-03 08:44:37 · 116 阅读 · 0 评论 -
部署 k8s Cluster(上)- 每天5分钟玩转 Docker 容器技术(118)
部署 k8s Cluster(上)- 每天5分钟玩转 Docker 容器技术(118)原创CloudManCloudMan2018-01-12第118篇部署 k8s Cluster(上)我们将部署三个节点的 Kubernetes Cluster。k8s-master 是 Master,k8s-node1 和 k8s-node2 是 Node。所有节点的操作系统均为 Ubuntu 16.04,当然其他 Linux 也是可以的。官方安装文档可以参考https://kube...转载 2020-12-03 08:44:28 · 103 阅读 · 0 评论 -
k8s 重要概念 - 每天5分钟玩转 Docker 容器技术(117)
k8s 重要概念 - 每天5分钟玩转 Docker 容器技术(117)原创CloudManCloudMan2018-01-10第117篇k8s 重要概念在实践之前,必须先学习 Kubernetes 的几个重要概念,它们是组成 Kubernetes 集群的基石。ClusterCluster 是计算、存储和网络资源的集合,Kubernetes 利用这些资源运行各种基于容器的应用。MasterMaster 是 Cluster 的大脑,它的主要职责是调度,即决定将应...转载 2020-12-03 08:44:18 · 126 阅读 · 0 评论 -
k8s 核心功能 - 每天5分钟玩转 Docker 容器技术(116)
k8s 核心功能 - 每天5分钟玩转 Docker 容器技术(116)CloudMan2018-01-08第116篇k8s 核心功能本节带领大家快速体验 k8s 的核心功能:应用部署、访问、Scale Up/Down 以及滚动更新。部署应用执行命令:kubectl run kubernetes-bootcamp \ --image=docker.io/jocatalin/kubernetes-bootcamp:v1 \ --port=8080...转载 2020-12-03 08:44:08 · 182 阅读 · 0 评论 -
5 秒创建 k8s 集群 - 每天5分钟玩转 Docker 容器技术(115)
5 秒创建 k8s 集群 - 每天5分钟玩转 Docker 容器技术(115)原创CloudManCloudMan2018-01-05第115篇5 秒创建 k8s 集群Kubernetes (K8s) 是 Google 在 2014 年发布的一个开源项目。据说 Google 的数据中心里运行着超过 20 亿个容器,而且 Google 十年前就开始使用容器技术。最初,Google 开发了一个叫 Borg 的系统(现在命令为 Omega)来调度如此庞大数量的容器和工作负载。在积累了...转载 2020-12-03 08:43:58 · 136 阅读 · 0 评论 -
学习 k8s 的 Why 和 How - 每天5分钟玩转 Docker 容器技术(114
学习 k8s 的 Why 和 How - 每天5分钟玩转 Docker 容器技术(114)原创CloudManCloudMan2018-01-03第114篇学习 k8s 的 Why 和 How这是一个系统学习 Kubernetes 的教程,有下面两个特点: 系统讲解当前最流行的容器编排引擎 Kubernetes 包括了安装部署、应用管理、网络、存储、监控、日志管理等多各个方面。 重实践并兼顾理论 通过大量实验和操作带领大家学习 Kubernetes。 ...转载 2020-12-03 08:43:48 · 105 阅读 · 0 评论 -
stack 的优势 - 每天5分钟玩转 Docker 容器技术(113)
stack 的优势 - 每天5分钟玩转 Docker 容器技术(113)CloudMan2018-01-01第113篇stack 的优势stack 将应用所包含的 service,依赖的 secret、voluem 等资源,以及它们之间的关系定义在一个 YAML 文件中。相比较手工执行命令或是脚本,stack 有明显的优势。 YAML 描述的是What,是 stack 最终要达到的状态。 比如 service 有几个副本?使用哪个 image?映射的端口是什么?而脚本则是描...转载 2020-12-03 08:43:38 · 115 阅读 · 0 评论 -
如何使用 stack?- 每天5分钟玩转 Docker 容器技术(112)
如何使用 stack?- 每天5分钟玩转 Docker 容器技术(112)原创CloudManCloudMan2017-12-29第112篇如何使用 stack?定义好了 stack YAML 文件,就可以通过docker stack deploy命令部署应用。Docker 会按照 YAML 的内容来创建各种资源。为了不重名,所有资源都会加上 stack 名称作为前缀,我们这里是wpstack_*。部署完成后可以通过相关命令查看各种资源的状态。如果想更新 st...转载 2020-12-03 08:43:28 · 150 阅读 · 0 评论 -
什么是 stack?- 每天5分钟玩转 Docker 容器技术(111)
什么是 stack?- 每天5分钟玩转 Docker 容器技术(111)原创CloudManCloudMan2017-12-27第111篇什么是 stack?什么是 stack ?在回答这个问题之前我们先回忆一下前面部署 WordPress 应用的过程: 首先创建 secret。 然后创建 MySQL service,这是 WordPress 依赖的服务。 最后创建 WordPress service。 也就是说,这个应用包含了两个 service:My...转载 2020-12-03 08:43:19 · 224 阅读 · 0 评论 -
通过案例学习 Secret - 每天5分钟玩转 Docker 容器技术(110)
通过案例学习 Secret - 每天5分钟玩转 Docker 容器技术(110)原创CloudManCloudMan2017-12-25第110篇通过案例学习 Secret在下面的例子中,我们会部署一个 WordPress 应用,WordPress 是流行的开源博客系统。我们将创建一个 MySQL service,将密码保存到 secret 中。我们还会创建一个 WordPress service,它将使用 secret 连接 MySQL。这个例子将展示如何用 secr...转载 2020-12-03 08:43:09 · 95 阅读 · 0 评论 -
Secret 的使用场景 - 每天5分钟玩转 Docker 容器技术(109)
Secret 的使用场景 - 每天5分钟玩转 Docker 容器技术(109)原创CloudManCloudMan2017-12-22第109篇Secret 的使用场景我们可以用 secret 管理任何敏感数据。这些敏感数据是容器在运行时需要的,同时我们不又想将这些数据保存到镜像中。secret 可用于管理: 用户名和密码。 TLS 证书。 SSH 秘钥。 其他小于 500 KB 的数据。 secret 只能在 swarm servic...转载 2020-12-02 08:35:55 · 200 阅读 · 0 评论 -
如何使用 Secret?- 每天5分钟玩转 Docker 容器技术(108)
如何使用 Secret?- 每天5分钟玩转 Docker 容器技术(108)原创CloudManCloudMan2017-12-20第108篇如何使用 Secret?我们经常要向容器传递敏感信息,最常见的莫过于密码了。比如:docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql在启动 MySQL 容器时我们通过环境变量MYSQL_ROOT_PASSWORD设置了 MySQL 的管理员密码。不...转载 2020-12-02 08:35:45 · 421 阅读 · 0 评论 -
如何配置 Health Check?- 每天5分钟玩转 Docker 容器技术(107)
如何配置 Health Check?- 每天5分钟玩转 Docker 容器技术(107)原创CloudManCloudMan2017-12-18第107篇如何配置 Health Check?容器状态是 UP 的,应用就是健康的吗?还真不一定!Docker 只能从容器启动进程的返回代码判断其状态,而对于容器内部应用的运行情况基本没有了解。执行docker run命令时,通常会根据 Dockerfile 中的 CMD 或 ENTRYPOINT 启动一个进程,这个进程的状...转载 2020-12-02 08:35:35 · 338 阅读 · 0 评论 -
Label 控制 Service 的位置 - 每天5分钟玩转 Docker 容器技术(106)
Label 控制 Service 的位置 - 每天5分钟玩转 Docker 容器技术(106)原创CloudManCloudMan2017-12-15第106篇Label 控制 Service 的位置上一节我们讨论了Service 部署的两种模式:global mode 和 replicated mode。无论采用 global mode 还是 replicated mode,副本运行在哪些节点都是由 Swarm 决定的,作为用户我们有没有可能精细控制 Service 的运行位...转载 2020-12-02 08:35:26 · 367 阅读 · 0 评论 -
replicated mode vs global mode - 每天5分钟玩转 Docker 容器技术(105)
replicated mode vs global mode - 每天5分钟玩转 Docker 容器技术(105)原创CloudManCloudMan2017-12-13第105篇replicated mode vs global modeSwarm 可以在 service 创建或运行过程中灵活地通过--replicas调整容器副本的数量,内部调度器则会根据当前集群的资源使用状况在不同 node 上启停容器,这就是 service 默认的replicatedmode。在此模式下...转载 2020-12-02 08:35:14 · 479 阅读 · 0 评论 -
验证 Swarm 数据持久性 - 每天5分钟玩转 Docker 容器技术(104)
验证 Swarm 数据持久性 - 每天5分钟玩转 Docker 容器技术(104)原创CloudManCloudMan2017-12-11第104篇验证 Swarm 数据持久性上一节我们成功将 Rex-Ray Volume 挂载到了 Service。本节验证Failover 时,数据不会丢失。Scale Up增加一个副本:docker service update --replicas 2 my_web运行之前我们先推测一下,理想的结果应该是:s...转载 2020-12-02 08:35:04 · 106 阅读 · 0 评论 -
Swarm 如何管理数据?- 每天5分钟玩转 Docker 容器技术(103)
Swarm 如何管理数据?- 每天5分钟玩转 Docker 容器技术(103)原创CloudManCloudMan2017-12-08第103篇Swarm 如何管理数据?service 的容器副本会 scale up/down,会 failover,会在不同的主机上创建和销毁,这就引出一个问题,如果 service 有要管理的数据,那么这些数据应该如何存放呢?选项一:打包在容器里。显然不行。除非数据不会发生变化,否则,如何在多个副本直接保持同步呢?选项二:数据放在 Dock...转载 2020-12-02 08:34:54 · 117 阅读 · 0 评论 -
如何滚动更新 Service?- 每天5分钟玩转 Docker 容器技术(102)
如何滚动更新 Service?- 每天5分钟玩转 Docker 容器技术(102)原创CloudManCloudMan2017-12-06第102篇如何滚动更新 Service?在前面的实验中,我们部署了多个副本的服务,本节将讨论如何滚动更新每一个副本。滚动更新降低了应用更新的风险,如果某个副本更新失败,整个更新将暂停,其他副本则可以继续提供服务。同时,在更新的过程中,总是有副本在运行的,因此也保证了业务的连续性。下面我们将部署三副本的服务,镜像使用 httpd:2.2.31,...转载 2020-12-02 08:34:43 · 294 阅读 · 0 评论 -
Service 之间如何通信?- 每天5分钟玩转 Docker 容器技术(101)
Service 之间如何通信?- 每天5分钟玩转 Docker 容器技术(101)原创CloudManCloudMan2017-12-04第101篇Service 之间如何通信?微服务架构的应用由若干 service 组成。比如有运行 httpd 的 web 前端,有提供缓存的 memcached,有存放数据的 mysql,每一层都是 swarm 的一个 service,每个 service 运行了若干容器。在这样的架构中,service 之间是必然要通信的。...转载 2020-12-02 08:34:33 · 203 阅读 · 0 评论 -
神奇的 routing mesh - 每天5分钟玩转 Docker 容器技术(100)
神奇的 routing mesh - 每天5分钟玩转 Docker 容器技术(100)原创CloudManCloudMan2017-12-01第100篇神奇的 routing mesh接上一节案例,当我们访问任何节点的 8080 端口时,swarm 内部的 load balancer 会将请求转发给 web_server 其中的一个副本。这就是 routing mesh 的作用。所以,无论访问哪个节点,即使该节点上没有运行 service 的副本,最...转载 2020-12-02 08:34:22 · 257 阅读 · 0 评论 -
如何访问 Service?- 每天5分钟玩转 Docker 容器技术(99)
如何访问 Service?- 每天5分钟玩转 Docker 容器技术(99)原创CloudManCloudMan2017-11-29第99篇如何访问 Service?前面我们已经学习了如何部署 service,也验证了swarm 的 failover 特性。不过截止到现在,有一个重要问题还没有涉及:如何访问 service?这就是本节要讨论的问题。为了便于分析,我们重新部署 web_server。①docker service rm删除 web...转载 2020-12-01 06:30:41 · 556 阅读 · 0 评论 -
Swarm 如何实现 Failover?- 每天5分钟玩转 Docker 容器技术(98)
Swarm 如何实现 Failover?- 每天5分钟玩转 Docker 容器技术(98)原创CloudManCloudMan2017-11-27第98篇Swarm 如何实现 Failover?故障是在所难免的,容器可能崩溃,Docker Host 可能宕机,不过幸运的是,Swarm 已经内置了 failover 策略。创建 service 的时候,我们没有告诉 swarm 发生故障时该如何处理,只是说明了我们期望的状态(比如运行3个副本),swarm 会尽最大的...转载 2020-12-01 06:30:29 · 189 阅读 · 0 评论 -
如何实现 Service 伸缩?- 每天5分钟玩转 Docker 容器技术(97)
如何实现 Service 伸缩?- 每天5分钟玩转 Docker 容器技术(97)原创CloudManCloudMan2017-11-24第97篇如何实现 Service 伸缩?上一节部署了只有一个副本的 Service,不过对于 web 服务,我们通常会运行多个实例。这样可以负载均衡,同时也能提供高可用。swarm 要实现这个目标非常简单,增加 service 的副本数就可以了。在 swarm-manager 上执行如下命令:docker servi...转载 2020-12-01 06:30:18 · 231 阅读 · 0 评论 -
运行第一个 Service - 每天5分钟玩转 Docker 容器技术(96)
运行第一个 Service - 每天5分钟玩转 Docker 容器技术(96)原创CloudManCloudMan2017-11-22第96篇运行第一个 Service上一节我们创建好了 Swarm 集群, 现在部署一个运行 httpd 镜像的 service,执行如下命令:docker service create --name web_server httpd部署 service 的命令形式与运行容器的docker run很相似,--name为 s...转载 2020-12-01 06:29:51 · 306 阅读 · 0 评论 -
如何创建 Swarm 集群?- 每天5分钟玩转 Docker 容器技术(95)
如何创建 Swarm 集群?- 每天5分钟玩转 Docker 容器技术(95)原创CloudManCloudMan2017-11-20第95篇如何创建 Swarm 集群?本节我们将创建三节点的 swarm 集群。swarm-manager 是 manager node,swarm-worker1 和 swarm-worker2 是 worker node。所有节点的 Docker 版本均不低于 v1.12。我们的实验环境 node 的操作系统为 Ubuntu 1...转载 2020-12-01 06:29:32 · 230 阅读 · 0 评论