在下面的例子中,我们会部署一个 WordPress 应用,WordPress 是流行的开源博客系统. 我们将创建一个 MySQL service,将密码保存到 secret 中.我们还会创建一个 WordPress service,它将使用 secret 连接 MySQL.这个例子将展示如何用 secret 避免在 image 中存放敏感信息,或者在命令行中直接传递敏感数据. 实验步骤如下: 创建 secret 创建 secret 存放 MySQL 的管理员密码. openssl rand -b…
可以通过 kubectl get secret 查看存在的 secret. 显示有两个数据条目,kubectl describe secret 查看条目的 Key: 如果还想查看 Value,可以用 kubectl edit secret mysecret: 然后通过 base64 将 Value 反编码: 下节学习如何在 Pod 中使用 Secret. 书籍: 1.<每天5分钟玩转Kubernetes>https://item.jd.com/26225745440.html 2.<每天…
Pod 可以通过 Volume 或者环境变量的方式使用 Secret,今天先学习 Volume 方式. Pod 的配置文件如下所示: ① 定义 volume foo,来源为 secret mysecret. ② 将 foo mount 到容器路径 /etc/foo,可指定读写权限为 readOnly. 创建 Pod 并在容器中读取 Secret: 可以看到,Kubernetes 会在指定的路径 /etc/foo 下为每条敏感数据创建一个文件,文件名就是数据条目的 Key,这里是 /etc/foo…
通过 Volume 使用 Secret,容器必须从文件读取数据,会稍显麻烦,Kubernetes 还支持通过环境变量使用 Secret. Pod 配置文件示例如下: 创建 Pod 并读取 Secret. 通过环境变量 SECRET_USERNAME 和 SECRET_PASSWORD 成功读取到 Secret 的数据. 需要注意的是,环境变量读取 Secret 很方便,但无法支撑 Secret 动态更新. Secret 可以为 Pod 提供密码.Token.私钥等敏感数据:对于一些非敏感数据,比…
我们经常要向容器传递敏感信息,最常见的莫过于密码了.比如: docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql 在启动 MySQL 容器时我们通过环境变量 MYSQL_ROOT_PASSWORD 设置了 MySQL 的管理员密码.不过密码是以明文的形式写在 docker run 命令中,有潜在的安全隐患. 为了解决这个问题,docker swarm 提供了 secret 机制,允许将敏感信息加密后保存到 secret 中,用户可以指定哪…
我们可以用 secret 管理任何敏感数据.这些敏感数据是容器在运行时需要的,同时我们不又想将这些数据保存到镜像中. secret 可用于管理: 用户名和密码. TLS 证书. SSH 秘钥. 其他小于 500 KB 的数据. secret 只能在 swarm service 中使用.普通容器想使用 secret,可以将其包装成副本数为 1 的 service. 这里我们再举一个使用 secret 的典型场景. 数据中心有三套 swarm 环境,分别用于开发.测试和生产.对于同一个应用,在不同的…
这是一个系统学习 Kubernetes 的教程,有下面两个特点: 系统讲解当前最流行的容器编排引擎 Kubernetes包括了安装部署.应用管理.网络.存储.监控.日志管理等多各个方面. 重实践并兼顾理论通过大量实验和操作带领大家学习 Kubernetes. 为什么要学 Kubernetes ? 因为 Kubernetes 太热门了. 2017 年 9 月,Mesosphere 宣布 支持 Kubernetes:10 月,Docker 宣布将在新版本中加入对 Kubernetes 的原生支持.至…
本节详细分析两个 k8s 自己的 DaemonSet:kube-flannel-ds 和 kube-proxy . kube-flannel-ds 下面我们通过分析 kube-flannel-ds 来学习 DaemonSet. 还记得之前是如何部署 flannel 网络的吗?我们执行了如下两个命令: kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel…
上一节介绍了 Prometheus 的核心,多维数据模型.本节演示如何快速搭建 Prometheus 监控系统. 环境说明 我们将通过 Prometheus 监控两台 Docker Host:192.168.56.102 和 192.168.56.103,监控 host 和容器两个层次的数据. 按照架构图,我们需要运行如下组件: Prometheus Server Prometheus Server 本身也将以容器的方式运行在 host 192.168.56.103 上. Exporter Pr…
什么是 stack ?在回答这个问题之前我们先回忆一下前面部署 WordPress 应用的过程: 首先创建 secret. 然后创建 MySQL service,这是 WordPress 依赖的服务. 最后创建 WordPress service. 也就是说,这个应用包含了两个 service:MySQL 和 WordPress,它们之间有明确的依赖关系,必须先启动 MySQL. 为了保证这个依赖关系,我们控制了 docker secret 和 docker service 命令的执行顺序,只不…