九月 2017

Kubernetes 1.8:安全、负载和功能演进

Tags: 

很高兴的在此宣布今年的第三个 Release,Kubernetes 1.8 发布了。Kubernetes 1.8 展示了很多激动 人心的新特性。除了功能改进之外,社区方面也在向着更成熟的方向发展, 我们强化了项目的过程管理, 确定了架构和管理办法 这些进步将进一步保障 Kubernetes 在未来的持续发展能力和广阔前景,

istio 的自动注入

Tags: 

istio 的自动注入

从小白角度上来讲,istio 的吸引力不在于那些花里胡哨或者说精彩纷呈的功能,而是

  • 第一:背景深厚
  • 第二:可以流水线操作的一键注入功能

而目前的 0.2 预发布版又提供了自动注入功能,进一步提高了易用性。

开始之前

istio 的 0.2.4 版本。

根据官方文档,自动注入功能需要 Kubernetes 1.7.4 以上,并且需要启用两个 Alpha 功能,可以把 如下参数加入 kube-apiserver 的启动文件之中:

--runtime-config=admissionregistration.k8s.io/v1alpha1=true
--runtime-config=batch/v2alpha1=true

开启自动注入功能

kubectl apply -f install/kubernetes/istio-initializer.yaml

等待运行结果。注意其中的镜像地址可以按需求进行编辑。

Kubernetes + Blackbox 实现对 Web 和 DNS 的简单监控

其实都在这里了: https://github.com/prometheus/blackbox_exporter/blob/master/CONFIGURATION.md

Prometheus 带有很多有针对性的 Exporter,能够对 MySQL、Apache 或者 ElasticSearch 等服务 器进行监控,另外还有 Blackbox Exporter 用于对 http dns tcp 等零散目标进行简单监控。

DNS 的监控

首先需要运行一个 Blackbox 的 Deployment,并利用 Configmap 来为 Blackbox 提供配置文件:

Kubernetes 应用故障的一些定位方法

常备工作

准备一个工具镜像

其中包含 nslookup, ping, curl, 甚至是 ab、siege 等常用工具以及一个顺手的 Shell。一言不合就可以用静态 Pod 的方式将其运行到 Kubernetes 之中进行内部诊断。

sysctl -a | grep forwarding

你猜这是干啥的?

服务状态查询

各个 Kubernetes 组件的状态检查。可以使用 Ansible 之类的工具进行快速查询。

Service 不通

这里我们首先假设 Pod 工作正常

目前我们的应用均采用的是 NodePort 模式对外提供服务: