update
parent
be643b7ce7
commit
338d7888bd
15
SUMMARY.md
15
SUMMARY.md
|
@ -77,7 +77,7 @@
|
|||
* [Service API 简介](concepts/service-api-overview.md)
|
||||
* [身份与权限控制](concepts/authentication-and-permission.md)
|
||||
* [ServiceAccount](concepts/serviceaccount.md)
|
||||
* [RBAC—— 基于角色的访问控制](concepts/rbac.md)
|
||||
* [基于角色的访问控制(RBAC)](concepts/rbac.md)
|
||||
* [NetworkPolicy](concepts/network-policy.md)
|
||||
* [网络](concepts/networking.md)
|
||||
* [Kubernetes 中的网络解析 —— 以 flannel 为例](concepts/flannel.md)
|
||||
|
@ -89,7 +89,7 @@
|
|||
* [ConfigMap](concepts/configmap.md)
|
||||
* [ConfigMap 的热更新](concepts/configmap-hot-update.md)
|
||||
* [Volume](concepts/volume.md)
|
||||
* [Persistent Volume(持久化卷)](concepts/persistent-volume.md)
|
||||
* [持久化卷(Persistent Volume)](concepts/persistent-volume.md)
|
||||
* [Storage Class](concepts/storageclass.md)
|
||||
* [本地持久化存储](concepts/local-persistent-storage.md)
|
||||
* [集群扩展](concepts/extension.md)
|
||||
|
@ -99,9 +99,10 @@
|
|||
* [APIService](concepts/apiservice.md)
|
||||
* [Service Catalog](concepts/service-catalog.md)
|
||||
* [多集群管理](concepts/multicluster.md)
|
||||
* [Multi-Cluster Services API(多集群服务 API )](concepts/multi-cluster-services-api.md)
|
||||
* [多集群服务 API(Multi-Cluster Services API)](concepts/multi-cluster-services-api.md)
|
||||
* [集群联邦(Cluster Federation)](practice/federation.md)
|
||||
* [资源调度](concepts/scheduling.md)
|
||||
* [QoS(服务质量等级)](concepts/qos.md)
|
||||
* [服务质量等级(QoS)](concepts/qos.md)
|
||||
|
||||
## 用户指南
|
||||
|
||||
|
@ -173,7 +174,6 @@
|
|||
* [集群及应用监控](practice/monitor.md)
|
||||
* [数据持久化问题](practice/data-persistence-problem.md)
|
||||
* [管理容器的计算资源](practice/manage-compute-resources-container.md)
|
||||
* [集群联邦(Cluster Federation)](practice/federation.md)
|
||||
* [存储管理](practice/storage.md)
|
||||
* [GlusterFS](practice/glusterfs.md)
|
||||
* [使用 GlusterFS 做持久化存储](practice/using-glusterfs-for-persistent-storage.md)
|
||||
|
@ -193,7 +193,7 @@
|
|||
* [Heapster](practice//heapster.md)
|
||||
* [使用 Heapster 获取集群和对象的 metric 数据](practice/using-heapster-to-get-object-metrics.md)
|
||||
* [Prometheus](practice/prometheus.md)
|
||||
* [使用 Prometheus 监控 kubernetes 集群](practice/using-prometheus-to-monitor-kuberentes-cluster.md)
|
||||
* [使用 Prometheus 监控 Kubernetes 集群](practice/using-prometheus-to-monitor-kuberentes-cluster.md)
|
||||
* [Prometheus 查询语言 PromQL 使用说明](practice/promql.md)
|
||||
* [使用 Vistio 监控 Istio 服务网格中的流量](practice/vistio-visualize-your-istio-mesh.md)
|
||||
* [分布式追踪](practice/distributed-tracing.md)
|
||||
|
@ -211,7 +211,7 @@
|
|||
* [OpenKruise](practice/openkruise.md)
|
||||
* [原地升级](practice/in-place-update.md)
|
||||
* [安全策略](practice/security-policy.md)
|
||||
* [OPA(开放策略代理)](practice/open-policy-agent.md)
|
||||
* [开放策略代理(OPA)](practice/open-policy-agent.md)
|
||||
* [云原生安全](practice/cloud-native-security.md)
|
||||
|
||||
## 服务网格
|
||||
|
@ -284,7 +284,6 @@
|
|||
* [开源项目加入 CNCF Sandbox 的要求](cloud-native/cncf-sandbox-criteria.md)
|
||||
* [CNCF 中的项目治理](cloud-native/cncf-project-governing.md)
|
||||
* [CNCF Ambassador](cloud-native/cncf-ambassador.md)
|
||||
* [云原生社区](cloud-native/cnc.md)
|
||||
* [认证及培训](cloud-native/certification.md)
|
||||
* [认证 Kubernetes 服务提供商(KCSP)说明](appendix/about-kcsp.md)
|
||||
* [认证 Kubernetes 管理员(CKA)说明](appendix/about-cka-candidate.md)
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
# 云原生编程语言 Pulumi
|
||||
|
||||
2018年6月18日 Joe Duffy在[他的博客](http://joeduffyblog.com/2018/06/18/hello-pulumi/)中宣布开源了云原生编程语言[Pulumi](https://pulumi.io)。这是继[Ballerina](https://ballerina.io)之后我看到的另一款云原生编程语言,他们之间有一些共同的特点,例如都是为了支持多种云环境,基于不可变基础设施和基础设施即代码的理念构建,使云原生应用的集成更加方便,但也有一些不同,Ballerina是直接创建了一个基于JVM的语言,而Pulumi是为不同编程语言构建了SDK。
|
||||
2018 年 6 月 18 日 Joe Duffy 在[他的博客](http://joeduffyblog.com/2018/06/18/hello-pulumi/)中宣布开源了云原生编程语言 [Pulumi](https://www.pulumi.com/)。这是继 [Ballerina](https://ballerina.io/) 之后我看到的另一款云原生编程语言,他们之间有一些共同的特点,例如都是为了支持多种云环境,基于不可变基础设施和基础设施即代码的理念构建,使云原生应用的集成更加方便,但也有一些不同,Ballerina 是直接创建了一个基于 JVM 的语言,而 Pulumi 是为不同编程语言构建了 SDK。
|
||||
|
||||
下文部分来自 Joe Duffy 的博客 [Hello, Pulumi](http://joeduffyblog.com/2018/06/18/hello-pulumi/)!
|
||||
|
||||
![云原生编程语言Pulumi](../images/00704eQkgy1fsm4v0a6qwj30xc0m8t9d.jpg)
|
||||
![云原生编程语言Pulumi](../images/pulumi.jpg)
|
||||
|
||||
TL;DR 有了 Pulumi,38 页的手动操作说明将变成了 38 行代码。25000 行 YAML 配置变成了使用真实编程语言的 500 行语句。
|
||||
|
||||
|
@ -87,7 +87,7 @@ Pulumi不是PaaS,尽管它提供类似PaaS的生产力;您的程序总是直
|
|||
|
||||
这很难选择,但这里有一些关于 Pulumi 我最喜欢的东西:
|
||||
|
||||
**开源**。我坚信所有开发人员工具都应该是开源的。当然,Pulumi也是一家公司,但是有充足的机会通过增加便利性以建立商业模式。(可以认为是Git与GitHub的关系)我们从以前的工作中受益匪浅,其中包括Docker、Terraform、Kubernetes、TypeScript以及其他许多明确提及的工作。我们期待成为生态系统的一部分。因为我们在开放源代码方面下了很大功夫,所以我很高兴看到社区给我们带来什么,特别是在更高级别的软件包领域。
|
||||
**开源**。我坚信所有开发人员工具都应该是开源的。当然,Pulumi 也是一家公司,但是有充足的机会通过增加便利性以建立商业模式。(可以认为是Git 与 GitHub 的关系)我们从以前的工作中受益匪浅,其中包括 Docker、Terraform、Kubernetes、TypeScript 以及其他许多明确提及的工作。我们期待成为生态系统的一部分。因为我们在开放源代码方面下了很大功夫,所以我很高兴看到社区给我们带来什么,特别是在更高级别的软件包领域。
|
||||
|
||||
**多语言**。就像使用 Java 和.NET 一样,Pulumi 运行时的架构可以支持多种语言,并以目标语言的所有方面(风格、语法、软件包等)的惯用方式来实现。因为我们是开源的,任何人都可以贡献自己的力量。
|
||||
|
||||
|
@ -97,7 +97,7 @@ Pulumi不是PaaS,尽管它提供类似PaaS的生产力;您的程序总是直
|
|||
|
||||
**可重复使用的组件**。由于拥有真正的语言,我们可以构建更高层次的抽象。我最喜欢的例子之一是帮助我们的客户定期从部署中排除 1000 行 YAML,这是我们的 AWS 基础架构软件包。它采用 AWS 最佳实践来设置虚拟私有云,并提供专用子网和多可用区域支持,并将其转变为几行代码以配置整个网络:
|
||||
|
||||
```python
|
||||
```
|
||||
import * as awsinfra from "@pulumi/aws-infra";
|
||||
let network = new awsinfra.Network(`${prefix}-net`, {
|
||||
numberOfAvailabilityZones: 3, // Create subnets in many AZs
|
||||
|
@ -111,7 +111,7 @@ let network = new awsinfra.Network(`${prefix}-net`, {
|
|||
|
||||
**Lambda 无服务器功能 **。 AWS 的取了个好名字:Lambda。在 Pulumi 中,我现在可以用我最喜欢的语言使用 lambda 表达式来编写我的无服务器函数,而不需要一行 YAML:
|
||||
|
||||
```python
|
||||
```
|
||||
import * as aws from "@pulumi/aws";
|
||||
import * as serverless from "@pulumi/aws-serverless";
|
||||
let topic = new aws.sns.Topic("topic");
|
||||
|
@ -140,9 +140,9 @@ serverless.cloudwatch.onEvent("hourly", "rate(60 minutes)", event => {
|
|||
|
||||
今天很可能是我职业生涯中最激动人心的一天。我想感谢我们的团队和所有帮助过我们的人,放纵我们的疯狂想法并相信我们。
|
||||
|
||||
现在访问[https://pulumi.io](https://pulumi.io/),或者直接运行:
|
||||
现在访问 [Pulumi 官方文档](https://www.pulumi.com/docs/index.html)或者直接运行:
|
||||
|
||||
```bash
|
||||
```
|
||||
$ curl -fsSL https://get.pulumi.com | sh
|
||||
```
|
||||
|
||||
|
@ -150,5 +150,5 @@ $ curl -fsSL https://get.pulumi.com | sh
|
|||
|
||||
## 参考
|
||||
|
||||
- [Pulumi](https://pulumi.io)
|
||||
- [Hello, Pulumi!](http://joeduffyblog.com/2018/06/18/hello-pulumi/)
|
||||
- [Pulumi 官网 - pulumi.com](https://www.pulumi.com/)
|
||||
- [Hello, Pulumi! - joeduffyblog.com](http://joeduffyblog.com/2018/06/18/hello-pulumi/)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Multi-Cluster Services API(多集群服务 API)
|
||||
# 多集群服务 API(Multi-Cluster Services API)
|
||||
|
||||
2020 年初,Kubernetes 社区提议 [Multi-Cluster Services API](https://docs.google.com/document/d/1hFtp8X7dzVS-JbfA5xuPvI_DNISctEbJSorFnY-nz6o/edit#heading=h.u7jfy9wqpd2b),旨在解决长久以来就存在的 Kubernetes 多集群服务管理问题。
|
||||
|
||||
K8s用户可能希望将他们的部署分成多个集群,但仍然保留在这些集群中运行的工作负载之间的相互依赖关系,这有[很多原因](http://bit.ly/k8s-multicluster-conversation-starter-doc)。今天,集群是一个硬边界,一个服务对远程的K8s消费者来说是不透明的,否则就可以利用元数据(如端点拓扑结构)来更好地引导流量。为了支持故障转移或在迁移过程中的临时性,用户可能希望消费分布在各集群中的服务,但今天这需要非复杂的定制解决方案。
|
||||
Kubernetes 用户可能希望将他们的部署分成多个集群,但仍然保留在这些集群中运行的工作负载之间的相互依赖关系,这有[很多原因](https://docs.google.com/document/d/1G1lfIukib7Fy_LpLUoHZPhcZ5T-w52D2YT9W1465dtY/edit)。今天,集群是一个硬边界,一个服务对远程的 Kubernetes 消费者来说是不透明的,否则就可以利用元数据(如端点拓扑结构)来更好地引导流量。为了支持故障转移或在迁移过程中的临时性,用户可能希望消费分布在各集群中的服务,但今天这需要非复杂的定制解决方案。
|
||||
|
||||
多集群服务 API 旨在解决这些问题。
|
||||
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
|
||||
## 集群联邦
|
||||
|
||||
集群联邦(Federation)是指通过 Federation API 资源来统一管理多个集群的资源,如定义 Deployment 如何部署到不同集群上,其集群所需的副本数等。这些集群可能位于不同的可用区、地区或者供应商。实施集群联邦一般是为了达到以下目的:
|
||||
集群联邦(Federation)是指通过 Federation API 资源来统一管理多个集群的资源,如定义 Deployment 如何部署到不同集群上,及其所需的副本数等。这些集群可能位于不同的可用区、地区或者供应商。实施集群联邦一般是为了达到以下目的:
|
||||
|
||||
- 简化管理多个集群的 Kubernetes 组件 (如 Deployment、Service 等;
|
||||
- 简化管理多个集群的 Kubernetes 组件 (如 Deployment、Service 等);
|
||||
- 在多个集群之间分散工作负载(Pod),以提升应用(服务)的可靠性;
|
||||
- 跨集群的资源编排,依据编排策略在多个集群进行应用(服务)部署;
|
||||
- 在不同集群中,能更快速更容易地迁移应用(服务);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Persistent Volume(持久化卷)
|
||||
# 持久化卷(Persistent Volume)
|
||||
|
||||
本文档介绍了 Kubernetes 中 `PersistentVolume` 的当前状态。建议您在阅读本文档前先熟悉 [volume](https://kubernetes.io/docs/concepts/storage/volumes/)。
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# QoS(服务质量等级)
|
||||
# 服务质量等级(QoS)
|
||||
|
||||
QoS(Quality of Service),大部分译为“服务质量等级”,又译作“服务质量保证”,是作用在 Pod 上的一个配置,当 Kubernetes 创建一个 Pod 时,它就会给这个 Pod 分配一个 QoS 等级,可以是以下等级之一:
|
||||
|
||||
|
@ -38,4 +38,4 @@ spec:
|
|||
|
||||
## 参考
|
||||
|
||||
- [Configure Quality of Service for Pods](https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/)
|
||||
- [配置 Pod 的服务质量 - kubernetes.io](https://kubernetes.io/zh/docs/tasks/configure-pod-container/quality-service-pod/)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# RBAC—— 基于角色的访问控制
|
||||
# 基于角色的访问控制(RBAC)
|
||||
|
||||
基于角色的访问控制(Role-Based Access Control, 即”RBAC”)使用”rbac.authorization.k8s.io” API Group 实现授权决策,允许管理员通过 Kubernetes API 动态配置策略。
|
||||
**注意:本文基于 Kubernetes 1.6 撰写,当时 RBAC 模式处于 beta 版本。**
|
||||
|
||||
截至 Kubernetes 1.6,RBAC 模式处于 beta 版本。
|
||||
基于角色的访问控制(Role-Based Access Control,即”RBAC”)使用 `rbac.authorization.k8s.io` API Group 实现授权决策,允许管理员通过 Kubernetes API 动态配置策略。
|
||||
|
||||
要启用 RBAC,请使用 `--authorization-mode=RBAC` 启动 API Server。
|
||||
|
||||
|
@ -573,3 +573,7 @@ kubectl create clusterrolebinding permissive-binding \
|
|||
--user=kubelet \
|
||||
--group=system:serviceaccounts
|
||||
```
|
||||
|
||||
## 参考
|
||||
|
||||
- [使用 RBAC 鉴权 - kubernetes.io](https://kubernetes.io/zh/docs/reference/access-authn-authz/rbac/)
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 86 KiB |
Binary file not shown.
After Width: | Height: | Size: 37 KiB |
|
@ -1,4 +1,4 @@
|
|||
# OPA(开放策略代理)
|
||||
# 开放策略代理(OPA)
|
||||
|
||||
OPA,全称 Open Policy Agent(开放策略代理),2016 年开源,目前已是 CNCF 中的毕业项目。官网是 [openpolicyagent.org](https://www.openpolicyagent.org/)。
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# 使用Prometheus监控kubernetes集群
|
||||
# 使用 Prometheus 监控 Kubernetes 集群
|
||||
|
||||
我们使用 Giantswarm 开源的 [kubernetes-promethues](https://github.com/giantswarm/kubernetes-prometheus) 来监控 kubernetes 集群,所有的 YAML 文件可以在 [../manifests/prometheus](https://github.com/rootsongjc/kubernetes-handbook/blob/master/manifests/prometheus) 目录下找到。
|
||||
|
||||
|
|
Loading…
Reference in New Issue