BenjaminYang In solitude, where we are least alone

随笔分类 -  kubernetes

kubernetes learn
摘要:Secret 可以为 Pod 提供密码、Token、私钥等敏感数据;对于一些非敏感数据,比如应用的配置信息,则可以用 ConfigMap。 ConfigMap 的创建和使用方式与 Secret 非常类似,主要的不同是数据以明文的形式存放。 1.configMap的创建 与 Secret 一样,Con 阅读全文
posted @ 2018-11-14 23:32 benjamin杨 阅读(14518) 评论(0) 推荐(0) 编辑
摘要:应用启动过程中可能需要一些敏感信息,比如访问数据库的用户名密码或者秘钥。将这些信息直接保存在容器镜像中显然不妥,Kubernetes 提供的解决方案是 Secret。 Secret 会以密文的方式存储数据,避免了直接在配置文件中保存敏感信息。Secret 会以 Volume 的形式被 mount 到 阅读全文
posted @ 2018-11-14 21:49 benjamin杨 阅读(8058) 评论(2) 推荐(2) 编辑
摘要:1.PV和PVC的引入 Volume 提供了非常好的数据持久化方案,不过在可管理性上还有不足。 拿前面 AWS EBS 的例子来说,要使用 Volume,Pod 必须事先知道如下信息: 当前 Volume 来自 AWS EBS。 EBS Volume 已经提前创建,并且知道确切的 volume-id 阅读全文
posted @ 2018-11-11 23:38 benjamin杨 阅读(32824) 评论(6) 推荐(10) 编辑
摘要:1.Volume简介 我们经常会说:容器和 Pod 是短暂的。其含义是它们的生命周期可能很短,会被频繁地销毁和创建。容器销毁时,保存在容器内部文件系统中的数据都会被清除。 为了持久化保存容器的数据,可以使用 Kubernetes Volume。 Volume 的生命周期独立于容器,Pod 中的容器可 阅读全文
posted @ 2018-11-10 19:00 benjamin杨 阅读(17768) 评论(0) 推荐(1) 编辑
摘要:强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性。自愈的默认实现方式是自动重启发生故障的容器。除此之外,用户还可以利用 Liveness 和 Readiness 探测机制设置更精细的健康检查,进而实现如下需求: 零停机部署。 避免部署无效的镜像。 更加安全的滚动升级。 下面通过 阅读全文
posted @ 2018-11-10 13:04 benjamin杨 阅读(9585) 评论(1) 推荐(1) 编辑
摘要:kubectl apply 每次更新应用时 Kubernetes 都会记录下当前的配置,保存为一个 revision(版次),这样就可以回滚到某个特定 revision。 默认配置下,Kubernetes 只会保留最近的几个 revision,可以在 Deployment 配置文件中通过 revis 阅读全文
posted @ 2018-11-09 18:13 benjamin杨 阅读(8424) 评论(0) 推荐(1) 编辑
摘要:1.service简介 本节开始学习 Service。我们不应该期望 Kubernetes Pod 是健壮的,而是要假设 Pod 中的容器很可能因为各种原因发生故障而死掉。Deployment 等 controller 会通过动态创建和销毁 Pod 来保证应用整体的健壮性。换句话说,Pod 是脆弱的 阅读全文
posted @ 2018-11-05 12:52 benjamin杨 阅读(2288) 评论(0) 推荐(2) 编辑
摘要:1.运行一次性容器 容器按照持续运行的时间可分为两类: 服务类容器 服务类容器通常持续提供服务,需要一直运行,比如 http server,daemon 等。 工作类容器 工作类容器则是一次性任务,比如批处理程序,完成后容器就退出。 Kubernetes 的 Deployment、ReplicaSe 阅读全文
posted @ 2018-11-04 10:50 benjamin杨 阅读(23442) 评论(1) 推荐(4) 编辑
摘要:Deployment 部署的副本 Pod 会分布在各个 Node 上,每个 Node 都可能运行好几个副本。DaemonSet 的不同之处在于:每个 Node 上最多只能运行一个副本。 1.DaemonSet 的典型应用场景 在集群的每个节点上运行存储 Daemon,比如 分布式存储 glusteF 阅读全文
posted @ 2018-11-03 22:28 benjamin杨 阅读(6350) 评论(0) 推荐(2) 编辑
摘要:默认情况下,scheduler会将pod调度到所有可用的Node,不过有些情况我们希望将 Pod 部署到指定的 Node,比如将有大量磁盘 I/O 的 Pod 部署到配置了 SSD 的 Node;或者 Pod 需要 GPU,需要运行在配置了 GPU 的节点上。 kubernetes通过label来实 阅读全文
posted @ 2018-11-03 20:09 benjamin杨 阅读(14382) 评论(0) 推荐(3) 编辑
摘要:当前3个节点的状态都为ready 当前node1有两个pod node2有1个pod 现在将node1关机会有怎样的现象 ping 分布在node1节点的pod地址已经ping不通。 在node1节点上的pod状态都变为unknow,并重新在node2上开启两个pod维持副本数始终为3,实现了fai 阅读全文
posted @ 2018-11-03 19:20 benjamin杨 阅读(3598) 评论(0) 推荐(0) 编辑
摘要:伸缩(Scale Up/Down)是指在线增加或减少 Pod 的副本数。 1.增加副本 Deployment nginx-deployment初始是两个副本。 现在将配置文件中原先replicas为2 改为5 pod将会怎么分布 2.master节点工作负载选择 这里由于我将master节点去除了污 阅读全文
posted @ 2018-11-03 17:32 benjamin杨 阅读(3288) 评论(0) 推荐(1) 编辑
摘要:命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1. 用 kubectl 命令直接创建 在命令行中通过参数指定资源的属性。 2. 通过配置文件和 kubectl apply 创建 要完成前面同样的工作,可执行命令: [root@k8s-master k8s]# kubectl a 阅读全文
posted @ 2018-11-03 12:48 benjamin杨 阅读(4740) 评论(0) 推荐(1) 编辑
摘要:Kubernetes 通过各种 Controller 来管理 Pod 的生命周期。为了满足不同业务场景,Kubernetes 开发了 Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 等多种 Controller。我们首先学习最常用的 Deployme 阅读全文
posted @ 2018-11-03 12:16 benjamin杨 阅读(9423) 评论(1) 推荐(2) 编辑
摘要:一、整体架构 kubernetes分为 master节点和工作节点,前者是管理节点,后者是容器运行的节点。其中master节点主要有3个重要组件,分别是APIServer,sheduler和controller manager。 工作节点 有两个组件 kubelet 和 kubelet (有时候ma 阅读全文
posted @ 2018-11-03 10:40 benjamin杨 阅读(8172) 评论(0) 推荐(1) 编辑
摘要:kubeadm是kubernetes官方用来自动化高效安装kubernetes的工具,手动安装,特别麻烦。 使用kubeadm安装无疑是一种不错的选择。 1、环境准备 1.1系统配置 系统是CentOS Linux release 7.5 禁用防火墙和selinux 添加内核参数文件 /etc/sy 阅读全文
posted @ 2018-10-13 18:58 benjamin杨 阅读(7351) 评论(0) 推荐(2) 编辑