Pod 的一生

本文阐述了 Pod 的生命周期,这并不是一篇全面的文档,仅是这一话题的简介。

Pod 的阶段(Phase)

按照《API 公约》 的描述,Pod 阶段是对生命周期的一个阶段的概括。他不是一个对 Pod 或者容器层次的状态的详尽结论,也不是一个全面的状态机。

PodPhase 很封闭。除了本文提到的内容,不应该对一个 Pod 的 PodPhase 做出任何假设。

CentOS 7 + Kubernetes 1.1.x + Docker 1.9.x 安装指南

前言

DockerKubernates最近可以说红的发紫,各种大部头和高深研究也层出不穷。

学习过程中看了官网和社区提供的不少起步文档,但是手工半手工这一块,总感觉语焉不详,操作性不很好,因此就边学边记,整理成这么一篇东西,本文只涉及操作,理论、架构、前景等内容,还请读者自行翻阅相关材料。

注意这里按照我的个人习惯,会把所有可执行文件复制到 /usr/local/share,并链接到 /usr/local/bin;环境配置文件统一放置到 /etc/sysconfig/kubernetes 中,这个做法跟手工安装一样,纯属个人恶趣味,没什么具体理由。

环境准备

这里我们使用的是 CentOS 7 为例子。

接下来内容里面会使用 A, B 两台服务器:

众生相

我建了个群

我有个同学 BLABLABLA,我前任的老板BLABLABLA

撸串!

XXXX培训盛况!S 学校的 B 教授等人....

有个创业团队拜见了我,并演示了他们的作品,我给了他们一些忠告

#xxxCSS# 你还在xxxxx ? 猛击xxxxx!

呵呵...


待续

使用 apt-mirror 和 apt-cacher 创建本地 Ubuntu 镜像

背景

在开始之前,让我先介绍一下促使我们形成这套方案的一些背景因素。

我以前是本地一间大学用户组的志愿者,我乐于为 Linux 新手提供支持并分享经验。这其中我帮助部署的大多数都是 Ubuntu。Ubuntu 的母公司 Canonical 提供的光盘用处不大,尽管有很多光盘,我们还是要面临同一个问题:带宽。获取软件更新和安全补丁始终是一个导致部署缓慢的瓶颈。

想象一下,你和一群 Linux 用户在同一个会议室里,每个用户都在尝试利用互联网来获取更新,想象一下这个过程会有多么缓慢和拥挤。随着人群的增长,这一问题会愈发显著。

在经过这些折磨之后,我开始寻求解决这一问题的方法。我知道所有的机器都在下载同样的更新和补丁,这一切都是重复工作。这实在太没效率了。这里一定有更好的办法。最后我找到了两个方案,下面我会简要介绍。

Apt-Mirror

第一个方法来自于一个工具——“apt-mirror”。这是一个 Perl 开发的工具,用来从一个公开仓库中下载并镜像全部内容。这样就会包含公共仓库中所有的内容,其中自然也会包含你不需要的包。

要配置 apt-mirror 需要如下条件:

Drupal 8 的动态页面缓存

Drupal 8 现在有了动态页面缓存。Page Cache 模块只对匿名用户生效,而 Dynamic Page Cache 模块则更进一步的为所有用户提供服务。

4 月 8 日起,Drupal 8 缺省开启了页面缓存。刚好五个月以后也就是 9 月 8 日,Dynamic Page Cache 模块也加入了 Drupal 8,同样的也是缺省开启。

动态页面缓存是什么?

Page Cache 模块缓存的是完全渲染之后的 HTML 响应内容

他假设每个响应只有一种,这个假设只对匿名用户有效。相对于 Drupal 7,8 的创新是加入了 Cache Tags(缓存标记),这就使得在使用页面缓存的时候,依然能够及时更新页面,不再呈现过期内容。

从请求到响应:Drupal 8 机制概览

《Drupal 8 模块开发》的第一篇文章中,我们对路由方面做了一些了解。我们看到,现在是通过声明路由,配合Controler,来创建一个 Path 对应的页面。后面我们看到,可以返回一个渲染数组,这个数组将被还原为标记,并展示在页面的内容区域中。然而,你是否注意到在这水面之下,Drupal 实际上是把这个数组根据 SymfonyHTTPKernelInterface 转换为一个 Response 对象?

本文中,我将会深入到 Drupal 8( 以及 Symfony 2 )之中,看看从用户发起请求,到看到响应的过程中,到底发生了什么。上面的例子是这一过程的可能性之一,今天我们会看一下其他的可能。本文目标是理解系统的弹性如何帮助我们制作应用。

编程管理手册大纲

本文假设读者具有编程操作 Node 的需求和经验。

Drupal 核心带有一个 Book 模块,用于生成具有多层上下级关系的内容大纲,这一功能对于特定需求的展示是非常有用的,这里介绍一下如何使用代码来生成层级大纲。

心急的同学可以直接拉到页尾抄代码。

Book 模块激活后,会在内容编辑界面上生成新的手册大纲标签页。这里即可编辑手册内容,并对大纲进行创建和添加。

我们可以通过新建一个手册的方式来观察 Drupal 中手册的行为,以此可以大致清楚创建的过程。

首先我们可以利用 Firebug 或者 Chrome 开发控制台等工具来观察新加入的标签页中 From 的具体内容,经过观察后我们知道,新建手册的选择,基本上是选择了之前我们创建的封面所在 Node 的 nid,注意这一下拉框的 ID 中的bid字样;如果我们选择了一个已经存在的手册的话,会多出一个选择上级的下拉框,其中列出了已经存在的手册项供选择,选择后就成为新内容的上级,注意这个下拉框 ID 中的plid

Drupal 8终极指南

作者:Angie Byron

原文地址:Ultimate Guide to Drupal 8

欢迎来到由8篇文章组成的,我们称之为"Drupal8终极指"的系列博客的第一篇。无论你是一个网站建设者,模块或主题开发者,或者只是一个Drupal网站的最终用户,Drupal8都为你提供了许许多多的改进。这次的系列博客将尝试为终端用户,网站建设者,设计师,前后端开发者列举Drupal8 的主要变化。后面的文章将越来越偏技术,所以如果你是个Drupal狂热份子,你可以跳过本文去阅读后面的部分(如果已经发布的话)。

请注意,由于Drupal8仍然在活跃开发当中,下面提到的一些细节可能在Drupal8正式发布之前有所改变。不过,也由于Drupal8已经处于特性冻结(feature-frozen)阶段,理论上大多数内容仍然会是正确的。另外本文将尽可能的介绍Drupal8核心特性在Drupal7里的等价模块。

利用 Drupal Workflow 模块实现审批发表流程

工作流,在大多数出版和办公情景下都属于一个必选组件。在之前的译文中我也介绍了一些相关的 Drupal Module,不过之前的介绍都流于表面,并没有很完整的解决问题,因此这里以一个典型的编辑审批流程为样本,详细介绍 Workflow 模块的工作流设置方法。

目标需求

  1. 编辑人员在未完成编辑时,可以暂存草稿。
  2. 编辑完成之后,提交给上级进行审核。
  3. 审核人员可以选择批准或者驳回,审核通过的稿件即可发布,未能通过的则退回到草稿箱。
  4. 只有审核通过的内容才能被浏览

这里假设读者熟悉一般的 Drupal/Drush 操作,能够自行解决模块依赖等常见问题。

准备工作

首先是安装,这里我们用 Drush 来解决:

页面