define cloud native app
parent
b505f69c2c
commit
8f573d53a8
280
SUMMARY.md
280
SUMMARY.md
|
@ -10,55 +10,61 @@
|
|||
* [云原生的设计哲学](cloud-native/cloud-native-philosophy.md)
|
||||
* [Play with Kubernetes](cloud-native/play-with-kubernetes.md)
|
||||
* [快速部署一个云原生本地实验环境](cloud-native/cloud-native-local-quick-start.md)
|
||||
* [使用Rancher在阿里云上部署Kubenretes集群](cloud-native/setup-kubernetes-with-rancher-and-aliyun.md)
|
||||
* [Kubernetes与云原生应用概览](cloud-native/kubernetes-and-cloud-native-app-overview.md)
|
||||
* [云原生应用之路——从Kubernetes到Cloud Native](cloud-native/from-kubernetes-to-cloud-native.md)
|
||||
* [使用 Rancher 在阿里云上部署 Kubenretes 集群](cloud-native/setup-kubernetes-with-rancher-and-aliyun.md)
|
||||
* [Kubernetes 与云原生应用概览](cloud-native/kubernetes-and-cloud-native-app-overview.md)
|
||||
* [云原生应用之路 —— 从 Kubernetes 到 Cloud Native](cloud-native/from-kubernetes-to-cloud-native.md)
|
||||
* [云原生编程语言](cloud-native/cloud-native-programming-languages.md)
|
||||
* [云原生编程语言Ballerina](cloud-native/cloud-native-programming-language-ballerina.md)
|
||||
* [云原生编程语言Pulumi](cloud-native/cloud-native-programming-language-pulumi.md)
|
||||
* [云原生编程语言 Ballerina](cloud-native/cloud-native-programming-language-ballerina.md)
|
||||
* [云原生编程语言 Pulumi](cloud-native/cloud-native-programming-language-pulumi.md)
|
||||
* [云原生的未来](cloud-native/the-future-of-cloud-native.md)
|
||||
* [定义云原生应用](cloud-native/define-cloud-native-app.md)
|
||||
* [Workload](cloud-native/workload.md)
|
||||
* [Component](cloud-native/component.md)
|
||||
* [Trait](cloud-native/trait.md)
|
||||
* [Application Scope](cloud-native/application-scope.md)
|
||||
* [Application Configuration](cloud-native/application-configuration.md)
|
||||
|
||||
## 概念与原理
|
||||
|
||||
* [Kubernetes架构](concepts/index.md)
|
||||
* [Kubernetes 架构](concepts/index.md)
|
||||
* [设计理念](concepts/concepts.md)
|
||||
* [Etcd解析](concepts/etcd.md)
|
||||
* [Etcd 解析](concepts/etcd.md)
|
||||
* [开放接口](concepts/open-interfaces.md)
|
||||
* [CRI - Container Runtime Interface(容器运行时接口)](concepts/cri.md)
|
||||
* [CNI - Container Network Interface(容器网络接口)](concepts/cni.md)
|
||||
* [CSI - Container Storage Interface(容器存储接口)](concepts/csi.md)
|
||||
* [Kubernetes中的网络](concepts/networking.md)
|
||||
* [Kubernetes中的网络解析——以flannel为例](concepts/flannel.md)
|
||||
* [Kubernetes中的网络解析——以calico为例](concepts/calico.md)
|
||||
* [具备API感知的网络和安全性管理开源软件Cilium](concepts/cilium.md)
|
||||
* [Cilium架构设计与概念解析](concepts/cilium-concepts.md)
|
||||
* [Kubernetes 中的网络](concepts/networking.md)
|
||||
* [Kubernetes 中的网络解析 —— 以 flannel 为例](concepts/flannel.md)
|
||||
* [Kubernetes 中的网络解析 —— 以 calico 为例](concepts/calico.md)
|
||||
* [具备 API 感知的网络和安全性管理开源软件 Cilium](concepts/cilium.md)
|
||||
* [Cilium 架构设计与概念解析](concepts/cilium-concepts.md)
|
||||
* [资源对象与基本概念解析](concepts/objects.md)
|
||||
* [Pod状态与生命周期管理](concepts/pod-state-and-lifecycle.md)
|
||||
* [Pod概览](concepts/pod-overview.md)
|
||||
* [Pod解析](concepts/pod.md)
|
||||
* [Init容器](concepts/init-containers.md)
|
||||
* [Pause容器](concepts/pause-container.md)
|
||||
* [Pod安全策略](concepts/pod-security-policy.md)
|
||||
* [Pod的生命周期](concepts/pod-lifecycle.md)
|
||||
* [Pod 状态与生命周期管理](concepts/pod-state-and-lifecycle.md)
|
||||
* [Pod 概览](concepts/pod-overview.md)
|
||||
* [Pod 解析](concepts/pod.md)
|
||||
* [Init 容器](concepts/init-containers.md)
|
||||
* [Pause 容器](concepts/pause-container.md)
|
||||
* [Pod 安全策略](concepts/pod-security-policy.md)
|
||||
* [Pod 的生命周期](concepts/pod-lifecycle.md)
|
||||
* [Pod Hook](concepts/pod-hook.md)
|
||||
* [Pod Preset](concepts/pod-preset.md)
|
||||
* [Pod中断与PDB(Pod中断预算)](concepts/pod-disruption-budget.md)
|
||||
* [Pod 中断与 PDB(Pod 中断预算)](concepts/pod-disruption-budget.md)
|
||||
* [集群资源管理](concepts/cluster.md)
|
||||
* [Node](concepts/node.md)
|
||||
* [Namespace](concepts/namespace.md)
|
||||
* [Label](concepts/label.md)
|
||||
* [Annotation](concepts/annotation.md)
|
||||
* [Taint和Toleration(污点和容忍)](concepts/taint-and-toleration.md)
|
||||
* [Taint 和 Toleration(污点和容忍)](concepts/taint-and-toleration.md)
|
||||
* [垃圾收集](concepts/garbage-collection.md)
|
||||
* [控制器](concepts/controllers.md)
|
||||
* [Deployment](concepts/deployment.md)
|
||||
* [StatefulSet](concepts/statefulset.md)
|
||||
* [DaemonSet](concepts/daemonset.md)
|
||||
* [ReplicationController和ReplicaSet](concepts/replicaset.md)
|
||||
* [ReplicationController 和 ReplicaSet](concepts/replicaset.md)
|
||||
* [Job](concepts/job.md)
|
||||
* [CronJob](concepts/cronjob.md)
|
||||
* [Horizontal Pod Autoscaling](concepts/horizontal-pod-autoscaling.md)
|
||||
* [自定义指标HPA](concepts/custom-metrics-hpa.md)
|
||||
* [自定义指标 HPA](concepts/custom-metrics-hpa.md)
|
||||
* [准入控制器(Admission Controller)](concepts/admission-controller.md)
|
||||
* [服务发现](concepts/service-discovery.md)
|
||||
* [Service](concepts/service.md)
|
||||
|
@ -66,19 +72,19 @@
|
|||
* [Traefik Ingress Controller](concepts/traefik-ingress-controller.md)
|
||||
* [身份与权限控制](concepts/authentication-and-permission.md)
|
||||
* [ServiceAccount](concepts/serviceaccount.md)
|
||||
* [RBAC——基于角色的访问控制](concepts/rbac.md)
|
||||
* [RBAC—— 基于角色的访问控制](concepts/rbac.md)
|
||||
* [NetworkPolicy](concepts/network-policy.md)
|
||||
* [存储](concepts/storage.md)
|
||||
* [Secret](concepts/secret.md)
|
||||
* [ConfigMap](concepts/configmap.md)
|
||||
* [ConfigMap的热更新](concepts/configmap-hot-update.md)
|
||||
* [ConfigMap 的热更新](concepts/configmap-hot-update.md)
|
||||
* [Volume](concepts/volume.md)
|
||||
* [Persistent Volume(持久化卷)](concepts/persistent-volume.md)
|
||||
* [Storage Class](concepts/storageclass.md)
|
||||
* [本地持久化存储](concepts/local-persistent-storage.md)
|
||||
* [集群扩展](concepts/extension.md)
|
||||
* [使用自定义资源扩展API](concepts/custom-resource.md)
|
||||
* [使用CRD扩展Kubernetes API](concepts/crd.md)
|
||||
* [使用自定义资源扩展 API](concepts/custom-resource.md)
|
||||
* [使用 CRD 扩展 Kubernetes API](concepts/crd.md)
|
||||
* [Aggregated API Server](concepts/aggregated-api-server.md)
|
||||
* [APIService](concepts/apiservice.md)
|
||||
* [Service Catalog](concepts/service-catalog.md)
|
||||
|
@ -89,66 +95,66 @@
|
|||
|
||||
* [用户指南](guide/index.md)
|
||||
* [资源对象配置](guide/resource-configuration.md)
|
||||
* [配置Pod的liveness和readiness探针](guide/configure-liveness-readiness-probes.md)
|
||||
* [配置Pod的Service Account](guide/configure-pod-service-account.md)
|
||||
* [Secret配置](guide/secret-configuration.md)
|
||||
* [管理namespace中的资源配额](guide/resource-quota-management.md)
|
||||
* [配置 Pod 的 liveness 和 readiness 探针](guide/configure-liveness-readiness-probes.md)
|
||||
* [配置 Pod 的 Service Account](guide/configure-pod-service-account.md)
|
||||
* [Secret 配置](guide/secret-configuration.md)
|
||||
* [管理 namespace 中的资源配额](guide/resource-quota-management.md)
|
||||
* [命令使用](guide/command-usage.md)
|
||||
* [Docker用户过渡到kubectl命令行指南](guide/docker-cli-to-kubectl.md)
|
||||
* [kubectl命令概览](guide/using-kubectl.md)
|
||||
* [kubectl命令技巧大全](guide/kubectl-cheatsheet.md)
|
||||
* [使用etcdctl访问kubernetes数据](guide/using-etcdctl-to-access-kubernetes-data.md)
|
||||
* [Docker 用户过渡到 kubectl 命令行指南](guide/docker-cli-to-kubectl.md)
|
||||
* [kubectl 命令概览](guide/using-kubectl.md)
|
||||
* [kubectl 命令技巧大全](guide/kubectl-cheatsheet.md)
|
||||
* [使用 etcdctl 访问 kubernetes 数据](guide/using-etcdctl-to-access-kubernetes-data.md)
|
||||
* [集群安全性管理](guide/cluster-security-management.md)
|
||||
* [管理集群中的TLS](guide/managing-tls-in-a-cluster.md)
|
||||
* [kubelet的认证授权](guide/kubelet-authentication-authorization.md)
|
||||
* [管理集群中的 TLS](guide/managing-tls-in-a-cluster.md)
|
||||
* [kubelet 的认证授权](guide/kubelet-authentication-authorization.md)
|
||||
* [TLS bootstrap](guide/tls-bootstrapping.md)
|
||||
* [创建用户认证授权的kubeconfig文件](guide/kubectl-user-authentication-authorization.md)
|
||||
* [IP伪装代理](guide/ip-masq-agent.md)
|
||||
* [使用kubeconfig或token进行用户身份认证](guide/auth-with-kubeconfig-or-token.md)
|
||||
* [Kubernetes中的用户与身份认证授权](guide/authentication.md)
|
||||
* [Kubernetes集群安全性配置最佳实践](guide/kubernetes-security-best-practice.md)
|
||||
* [访问Kubernetes集群](guide/access-kubernetes-cluster.md)
|
||||
* [创建用户认证授权的 kubeconfig 文件](guide/kubectl-user-authentication-authorization.md)
|
||||
* [IP 伪装代理](guide/ip-masq-agent.md)
|
||||
* [使用 kubeconfig 或 token 进行用户身份认证](guide/auth-with-kubeconfig-or-token.md)
|
||||
* [Kubernetes 中的用户与身份认证授权](guide/authentication.md)
|
||||
* [Kubernetes 集群安全性配置最佳实践](guide/kubernetes-security-best-practice.md)
|
||||
* [访问 Kubernetes 集群](guide/access-kubernetes-cluster.md)
|
||||
* [访问集群](guide/access-cluster.md)
|
||||
* [使用kubeconfig文件配置跨集群认证](guide/authenticate-across-clusters-kubeconfig.md)
|
||||
* [使用 kubeconfig 文件配置跨集群认证](guide/authenticate-across-clusters-kubeconfig.md)
|
||||
* [通过端口转发访问集群中的应用程序](guide/connecting-to-applications-port-forward.md)
|
||||
* [使用service访问群集中的应用程序](guide/service-access-application-cluster.md)
|
||||
* [从外部访问Kubernetes中的Pod](guide/accessing-kubernetes-pods-from-outside-of-the-cluster.md)
|
||||
* [Cabin - Kubernetes手机客户端](guide/cabin-mobile-dashboard-for-kubernetes.md)
|
||||
* [Kubernetic - Kubernetes桌面客户端](guide/kubernetes-desktop-client.md)
|
||||
* [Kubernator - 更底层的Kubernetes UI](guide/kubernator-kubernetes-ui.md)
|
||||
* [在Kubernetes中开发部署应用](guide/application-development-deployment-flow.md)
|
||||
* [适用于kubernetes的应用开发部署流程](guide/deploy-applications-in-kubernetes.md)
|
||||
* [迁移传统应用到Kubernetes中——以Hadoop YARN为例](guide/migrating-hadoop-yarn-to-kubernetes.md)
|
||||
* [使用StatefulSet部署用状态应用](guide/using-statefulset.md)
|
||||
* [使用 service 访问群集中的应用程序](guide/service-access-application-cluster.md)
|
||||
* [从外部访问 Kubernetes 中的 Pod](guide/accessing-kubernetes-pods-from-outside-of-the-cluster.md)
|
||||
* [Cabin - Kubernetes 手机客户端](guide/cabin-mobile-dashboard-for-kubernetes.md)
|
||||
* [Kubernetic - Kubernetes 桌面客户端](guide/kubernetes-desktop-client.md)
|
||||
* [Kubernator - 更底层的 Kubernetes UI](guide/kubernator-kubernetes-ui.md)
|
||||
* [在 Kubernetes 中开发部署应用](guide/application-development-deployment-flow.md)
|
||||
* [适用于 kubernetes 的应用开发部署流程](guide/deploy-applications-in-kubernetes.md)
|
||||
* [迁移传统应用到 Kubernetes 中 —— 以 Hadoop YARN 为例](guide/migrating-hadoop-yarn-to-kubernetes.md)
|
||||
* [使用 StatefulSet 部署用状态应用](guide/using-statefulset.md)
|
||||
|
||||
## 最佳实践
|
||||
|
||||
* [最佳实践概览](practice/index.md)
|
||||
* [在CentOS上部署Kubernetes集群](practice/install-kubernetes-on-centos.md)
|
||||
* [创建TLS证书和秘钥](practice/create-tls-and-secret-key.md)
|
||||
* [创建kubeconfig文件](practice/create-kubeconfig.md)
|
||||
* [创建高可用etcd集群](practice/etcd-cluster-installation.md)
|
||||
* [安装kubectl命令行工具](practice/kubectl-installation.md)
|
||||
* [部署master节点](practice/master-installation.md)
|
||||
* [安装flannel网络插件](practice/flannel-installation.md)
|
||||
* [部署node节点](practice/node-installation.md)
|
||||
* [安装kubedns插件](practice/kubedns-addon-installation.md)
|
||||
* [安装dashboard插件](practice/dashboard-addon-installation.md)
|
||||
* [安装heapster插件](practice/heapster-addon-installation.md)
|
||||
* [安装EFK插件](practice/efk-addon-installation.md)
|
||||
* [生产级的Kubernetes简化管理工具kubeadm](practice/install-kubernetes-with-kubeadm.md)
|
||||
* [使用kubeadm在Ubuntu Server 16.04上快速构建测试集群](practice/install-kubernetes-on-ubuntu-server-16.04-with-kubeadm.md)
|
||||
* [在 CentOS 上部署 Kubernetes 集群](practice/install-kubernetes-on-centos.md)
|
||||
* [创建 TLS 证书和秘钥](practice/create-tls-and-secret-key.md)
|
||||
* [创建 kubeconfig 文件](practice/create-kubeconfig.md)
|
||||
* [创建高可用 etcd 集群](practice/etcd-cluster-installation.md)
|
||||
* [安装 kubectl 命令行工具](practice/kubectl-installation.md)
|
||||
* [部署 master 节点](practice/master-installation.md)
|
||||
* [安装 flannel 网络插件](practice/flannel-installation.md)
|
||||
* [部署 node 节点](practice/node-installation.md)
|
||||
* [安装 kubedns 插件](practice/kubedns-addon-installation.md)
|
||||
* [安装 dashboard 插件](practice/dashboard-addon-installation.md)
|
||||
* [安装 heapster 插件](practice/heapster-addon-installation.md)
|
||||
* [安装 EFK 插件](practice/efk-addon-installation.md)
|
||||
* [生产级的 Kubernetes 简化管理工具 kubeadm](practice/install-kubernetes-with-kubeadm.md)
|
||||
* [使用 kubeadm 在 Ubuntu Server 16.04 上快速构建测试集群](practice/install-kubernetes-on-ubuntu-server-16.04-with-kubeadm.md)
|
||||
* [服务发现与负载均衡](practice/service-discovery-and-loadbalancing.md)
|
||||
* [安装Traefik ingress](practice/traefik-ingress-installation.md)
|
||||
* [安装 Traefik ingress](practice/traefik-ingress-installation.md)
|
||||
* [分布式负载测试](practice/distributed-load-test.md)
|
||||
* [网络和集群性能测试](practice/network-and-cluster-perfermance-test.md)
|
||||
* [边缘节点配置](practice/edge-node-configuration.md)
|
||||
* [安装Nginx ingress](practice/nginx-ingress-installation.md)
|
||||
* [安装配置DNS](practice/dns-installation.md)
|
||||
* [安装配置Kube-dns](practice/configuring-dns.md)
|
||||
* [安装配置CoreDNS](practice/coredns.md)
|
||||
* [安装 Nginx ingress](practice/nginx-ingress-installation.md)
|
||||
* [安装配置 DNS](practice/dns-installation.md)
|
||||
* [安装配置 Kube-dns](practice/configuring-dns.md)
|
||||
* [安装配置 CoreDNS](practice/coredns.md)
|
||||
* [运维管理](practice/operation.md)
|
||||
* [Master节点高可用](practice/master-ha.md)
|
||||
* [Master 节点高可用](practice/master-ha.md)
|
||||
* [服务滚动升级](practice/service-rolling-update.md)
|
||||
* [应用日志收集](practice/app-log-collection.md)
|
||||
* [配置最佳实践](practice/configuration-best-practice.md)
|
||||
|
@ -158,76 +164,76 @@
|
|||
* [集群联邦](practice/federation.md)
|
||||
* [存储管理](practice/storage.md)
|
||||
* [GlusterFS](practice/glusterfs.md)
|
||||
* [使用GlusterFS做持久化存储](practice/using-glusterfs-for-persistent-storage.md)
|
||||
* [使用Heketi作为Kubernetes的持久存储GlusterFS的external provisioner](practice/using-heketi-gluster-for-persistent-storage.md)
|
||||
* [在OpenShift中使用GlusterFS做持久化存储](practice/storage-for-containers-using-glusterfs-with-openshift.md)
|
||||
* [使用 GlusterFS 做持久化存储](practice/using-glusterfs-for-persistent-storage.md)
|
||||
* [使用 Heketi 作为 Kubernetes 的持久存储 GlusterFS 的 external provisioner](practice/using-heketi-gluster-for-persistent-storage.md)
|
||||
* [在 OpenShift 中使用 GlusterFS 做持久化存储](practice/storage-for-containers-using-glusterfs-with-openshift.md)
|
||||
* [GlusterD-2.0](practice/glusterd-2.0.md)
|
||||
* [Ceph](practice/ceph.md)
|
||||
* [用Helm托管安装Ceph集群并提供后端存储](practice/ceph-helm-install-guide-zh.md)
|
||||
* [使用Ceph做持久化存储](practice/using-ceph-for-persistent-storage.md)
|
||||
* [使用rbd-provisioner提供rbd持久化存储](practice/rbd-provisioner.md)
|
||||
* [用 Helm 托管安装 Ceph 集群并提供后端存储](practice/ceph-helm-install-guide-zh.md)
|
||||
* [使用 Ceph 做持久化存储](practice/using-ceph-for-persistent-storage.md)
|
||||
* [使用 rbd-provisioner 提供 rbd 持久化存储](practice/rbd-provisioner.md)
|
||||
* [OpenEBS](practice/openebs.md)
|
||||
* [使用OpenEBS做持久化存储](practice/using-openebs-for-persistent-storage.md)
|
||||
* [使用 OpenEBS 做持久化存储](practice/using-openebs-for-persistent-storage.md)
|
||||
* [Rook](practice/rook.md)
|
||||
* [NFS](practice/nfs.md)
|
||||
* [利用NFS动态提供Kubernetes后端存储卷](practice/using-nfs-for-persistent-storage.md)
|
||||
* [利用 NFS 动态提供 Kubernetes 后端存储卷](practice/using-nfs-for-persistent-storage.md)
|
||||
* [集群与应用监控](practice/monitoring.md)
|
||||
* [Heapster](practice//heapster.md)
|
||||
* [使用Heapster获取集群和对象的metric数据](practice/using-heapster-to-get-object-metrics.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查询语言PromQL使用说明](practice/promql.md)
|
||||
* [使用Vistio监控Istio服务网格中的流量](practice/vistio-visualize-your-istio-mesh.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)
|
||||
* [OpenTracing](practice/opentracing.md)
|
||||
* [服务编排管理](practice/services-management-tool.md)
|
||||
* [使用Helm管理Kubernetes应用](practice/helm.md)
|
||||
* [构建私有Chart仓库](practice/create-private-charts-repo.md)
|
||||
* [使用 Helm 管理 Kubernetes 应用](practice/helm.md)
|
||||
* [构建私有 Chart 仓库](practice/create-private-charts-repo.md)
|
||||
* [持续集成与发布](practice/ci-cd.md)
|
||||
* [使用Jenkins进行持续集成与发布](practice/jenkins-ci-cd.md)
|
||||
* [使用Drone进行持续集成与发布](practice/drone-ci-cd.md)
|
||||
* [使用 Jenkins 进行持续集成与发布](practice/jenkins-ci-cd.md)
|
||||
* [使用 Drone 进行持续集成与发布](practice/drone-ci-cd.md)
|
||||
* [更新与升级](practice/update-and-upgrade.md)
|
||||
* [手动升级Kubernetes集群](practice/manually-upgrade.md)
|
||||
* [升级dashboard](practice/dashboard-upgrade.md)
|
||||
* [手动升级 Kubernetes 集群](practice/manually-upgrade.md)
|
||||
* [升级 dashboard](practice/dashboard-upgrade.md)
|
||||
|
||||
## 领域应用
|
||||
|
||||
* [领域应用概览](usecases/index.md)
|
||||
* [微服务架构](usecases/microservices.md)
|
||||
* [微服务中的服务发现](usecases/service-discovery-in-microservices.md)
|
||||
* [使用Java构建微服务并发布到Kubernetes平台](usecases/microservices-for-java-developers.md)
|
||||
* [Spring Boot快速开始指南](usecases/spring-boot-quick-start-guide.md)
|
||||
* [使用 Java 构建微服务并发布到 Kubernetes 平台](usecases/microservices-for-java-developers.md)
|
||||
* [Spring Boot 快速开始指南](usecases/spring-boot-quick-start-guide.md)
|
||||
* [Service Mesh 服务网格](usecases/service-mesh.md)
|
||||
* [企业级服务网格架构](usecases/the-enterprise-path-to-service-mesh-architectures.md)
|
||||
* [Service Mesh基础](usecases/service-mesh-fundamental.md)
|
||||
* [Service Mesh技术对比](usecases/comparing-service-mesh-technologies.md)
|
||||
* [Service Mesh 基础](usecases/service-mesh-fundamental.md)
|
||||
* [Service Mesh 技术对比](usecases/comparing-service-mesh-technologies.md)
|
||||
* [采纳和演进](usecases/service-mesh-adoption-and-evolution.md)
|
||||
* [定制和集成](usecases/service-mesh-customization-and-integration.md)
|
||||
* [总结](usecases/service-mesh-conclusion.md)
|
||||
* [Istio](usecases/istio.md)
|
||||
* [安装并试用Istio service mesh](usecases/istio-installation.md)
|
||||
* [Istio中sidecar的注入规范及示例](usecases/sidecar-spec-in-istio.md)
|
||||
* [如何参与Istio社区及注意事项](usecases/istio-community-tips.md)
|
||||
* [Istio免费学习资源汇总](usecases/istio-tutorials-collection.md)
|
||||
* [Sidecar的注入与流量劫持](usecases/understand-sidecar-injection-and-traffic-hijack-in-istio-service-mesh.md)
|
||||
* [Envoy Sidecar代理的路由转发](usecases/envoy-sidecar-routing-of-istio-service-mesh-deep-dive.md)
|
||||
* [安装并试用 Istio service mesh](usecases/istio-installation.md)
|
||||
* [Istio 中 sidecar 的注入规范及示例](usecases/sidecar-spec-in-istio.md)
|
||||
* [如何参与 Istio 社区及注意事项](usecases/istio-community-tips.md)
|
||||
* [Istio 免费学习资源汇总](usecases/istio-tutorials-collection.md)
|
||||
* [Sidecar 的注入与流量劫持](usecases/understand-sidecar-injection-and-traffic-hijack-in-istio-service-mesh.md)
|
||||
* [Envoy Sidecar 代理的路由转发](usecases/envoy-sidecar-routing-of-istio-service-mesh-deep-dive.md)
|
||||
* [Linkerd](usecases/linkerd.md)
|
||||
* [Linkerd 使用指南](usecases/linkerd-user-guide.md)
|
||||
* [Conduit](usecases/conduit.md)
|
||||
* [Condiut概览](usecases/conduit-overview.md)
|
||||
* [安装Conduit](usecases/conduit-installation.md)
|
||||
* [Condiut 概览](usecases/conduit-overview.md)
|
||||
* [安装 Conduit](usecases/conduit-installation.md)
|
||||
* [Envoy](usecases/envoy.md)
|
||||
* [Envoy的架构与基本术语](usecases/envoy-terminology.md)
|
||||
* [Envoy作为前端代理](usecases/envoy-front-proxy.md)
|
||||
* [Envoy mesh教程](usecases/envoy-mesh-in-kubernetes-tutorial.md)
|
||||
* [Envoy 的架构与基本术语](usecases/envoy-terminology.md)
|
||||
* [Envoy 作为前端代理](usecases/envoy-front-proxy.md)
|
||||
* [Envoy mesh 教程](usecases/envoy-mesh-in-kubernetes-tutorial.md)
|
||||
* [MOSN](usecases/mosn.md)
|
||||
* [大数据](usecases/big-data.md)
|
||||
* [Spark standalone on Kubernetes](usecases/spark-standalone-on-kubernetes.md)
|
||||
* [运行支持Kubernetes原生调度的Spark程序](usecases/running-spark-with-kubernetes-native-scheduler.md)
|
||||
* [Serverless架构](usecases/serverless.md)
|
||||
* [理解Serverless](usecases/understanding-serverless.md)
|
||||
* [运行支持 Kubernetes 原生调度的 Spark 程序](usecases/running-spark-with-kubernetes-native-scheduler.md)
|
||||
* [Serverless 架构](usecases/serverless.md)
|
||||
* [理解 Serverless](usecases/understanding-serverless.md)
|
||||
* [FaaS(函数即服务)](usecases/faas.md)
|
||||
* [OpenFaaS快速入门指南](usecases/openfaas-quick-start.md)
|
||||
* [OpenFaaS 快速入门指南](usecases/openfaas-quick-start.md)
|
||||
* [Knative](usecases/knative.md)
|
||||
* [云原生应用标准](usecases/cloud-native-app-standard.md)
|
||||
* [OAM(开放应用模型)](usecases/oam.md)
|
||||
|
@ -237,11 +243,11 @@
|
|||
## 开发指南
|
||||
|
||||
* [开发指南概览](develop/index.md)
|
||||
* [SIG和工作组](develop/sigs-and-working-group.md)
|
||||
* [SIG 和工作组](develop/sigs-and-working-group.md)
|
||||
* [开发环境搭建](develop/developing-environment.md)
|
||||
* [本地分布式开发环境搭建(使用Vagrant和Virtualbox)](develop/using-vagrant-and-virtualbox-for-development.md)
|
||||
* [本地分布式开发环境搭建(使用 Vagrant 和 Virtualbox)](develop/using-vagrant-and-virtualbox-for-development.md)
|
||||
* [单元测试和集成测试](develop/testing.md)
|
||||
* [client-go示例](develop/client-go-sample.md)
|
||||
* [client-go 示例](develop/client-go-sample.md)
|
||||
* [Operator](develop/operator.md)
|
||||
* [operator-sdk](develop/operator-sdk.md)
|
||||
* [kubebuilder](develop/kubebuilder.md)
|
||||
|
@ -253,34 +259,34 @@
|
|||
## CNCF(云原生计算基金会)
|
||||
|
||||
* [CNCF - 云原生计算基金会简介](cloud-native/cncf.md)
|
||||
* [CNCF章程](cloud-native/cncf-charter.md)
|
||||
* [CNCF特别兴趣小组(SIG)说明](cloud-native/cncf-sig.md)
|
||||
* [开源项目加入CNCF Sandbox的要求](cloud-native/cncf-sandbox-criteria.md)
|
||||
* [CNCF中的项目治理](cloud-native/cncf-project-governing.md)
|
||||
* [CNCF 章程](cloud-native/cncf-charter.md)
|
||||
* [CNCF 特别兴趣小组(SIG)说明](cloud-native/cncf-sig.md)
|
||||
* [开源项目加入 CNCF Sandbox 的要求](cloud-native/cncf-sandbox-criteria.md)
|
||||
* [CNCF 中的项目治理](cloud-native/cncf-project-governing.md)
|
||||
* [CNCF Ambassador](cloud-native/cncf-ambassador.md)
|
||||
|
||||
## 附录
|
||||
|
||||
* [附录说明](appendix/index.md)
|
||||
* [Kubernetes中的应用故障排查](appendix/debug-kubernetes-services.md)
|
||||
* [Kubernetes相关资讯和情报链接](appendix/material-share.md)
|
||||
* [Docker最佳实践](appendix/docker-best-practice.md)
|
||||
* [Kubernetes 中的应用故障排查](appendix/debug-kubernetes-services.md)
|
||||
* [Kubernetes 相关资讯和情报链接](appendix/material-share.md)
|
||||
* [Docker 最佳实践](appendix/docker-best-practice.md)
|
||||
* [使用技巧](appendix/tricks.md)
|
||||
* [问题记录](appendix/issues.md)
|
||||
* [Kubernetes版本更新日志](appendix/kubernetes-changelog.md)
|
||||
* [Kubernetes1.7更新日志](appendix/kubernetes-1.7-changelog.md)
|
||||
* [Kubernetes1.8更新日志](appendix/kubernetes-1.8-changelog.md)
|
||||
* [Kubernetes1.9更新日志](appendix/kubernetes-1.9-changelog.md)
|
||||
* [Kubernetes1.10更新日志](appendix/kubernetes-1.10-changelog.md)
|
||||
* [Kubernetes1.11更新日志](appendix/kubernetes-1.11-changelog.md)
|
||||
* [Kubernetes1.12更新日志](appendix/kubernetes-1.12-changelog.md)
|
||||
* [Kubernetes1.13更新日志](appendix/kubernetes-1.13-changelog.md)
|
||||
* [Kubernetes1.14更新日志](appendix/kubernetes-1.14-changelog.md)
|
||||
* [Kubernetes1.15更新日志](appendix/kubernetes-1.15-changelog.md)
|
||||
* [Kubernetes及云原生年度总结及展望](appendix/summary-and-outlook.md)
|
||||
* [Kubernetes与云原生2017年年终总结及2018年展望](appendix/kubernetes-and-cloud-native-summary-in-2017-and-outlook-for-2018.md)
|
||||
* [Kubernetes与云原生2018年年终总结及2019年展望](appendix/kubernetes-and-cloud-native-summary-in-2018-and-outlook-for-2019.md)
|
||||
* [CNCF年度报告解读](appendix/cncf-annual-report.md)
|
||||
* [CNCF 2018年年度报告解读](appendix/cncf-annual-report-2018.md)
|
||||
* [Kubernetes认证服务提供商(KCSP)说明](appendix/about-kcsp.md)
|
||||
* [认证Kubernetes管理员(CKA)说明](appendix/about-cka-candidate.md)
|
||||
* [Kubernetes 版本更新日志](appendix/kubernetes-changelog.md)
|
||||
* [Kubernetes1.7 更新日志](appendix/kubernetes-1.7-changelog.md)
|
||||
* [Kubernetes1.8 更新日志](appendix/kubernetes-1.8-changelog.md)
|
||||
* [Kubernetes1.9 更新日志](appendix/kubernetes-1.9-changelog.md)
|
||||
* [Kubernetes1.10 更新日志](appendix/kubernetes-1.10-changelog.md)
|
||||
* [Kubernetes1.11 更新日志](appendix/kubernetes-1.11-changelog.md)
|
||||
* [Kubernetes1.12 更新日志](appendix/kubernetes-1.12-changelog.md)
|
||||
* [Kubernetes1.13 更新日志](appendix/kubernetes-1.13-changelog.md)
|
||||
* [Kubernetes1.14 更新日志](appendix/kubernetes-1.14-changelog.md)
|
||||
* [Kubernetes1.15 更新日志](appendix/kubernetes-1.15-changelog.md)
|
||||
* [Kubernetes 及云原生年度总结及展望](appendix/summary-and-outlook.md)
|
||||
* [Kubernetes 与云原生 2017 年年终总结及 2018 年展望](appendix/kubernetes-and-cloud-native-summary-in-2017-and-outlook-for-2018.md)
|
||||
* [Kubernetes 与云原生 2018 年年终总结及 2019 年展望](appendix/kubernetes-and-cloud-native-summary-in-2018-and-outlook-for-2019.md)
|
||||
* [CNCF 年度报告解读](appendix/cncf-annual-report.md)
|
||||
* [CNCF 2018 年年度报告解读](appendix/cncf-annual-report-2018.md)
|
||||
* [Kubernetes 认证服务提供商(KCSP)说明](appendix/about-kcsp.md)
|
||||
* [认证 Kubernetes 管理员(CKA)说明](appendix/about-cka-candidate.md)
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
# Application Configuration
|
||||
|
||||
本文基于 OAM v1alpha2 版本。
|
||||
|
||||
`ApplicationConfiguration` 将 `Component` 与 `Trait` 组合,定义了一个应用程序的配置,`Component` 每部署一次就会产生一个实例(`Instance`),实例是可以被升级的(包括回滚和重新部署),而每次部署和升级就会产生一次新的发布(`Release`)。
|
||||
|
||||
{{% alert title="关于 Release" color="primary" %}}
|
||||
[12 因素应用](https://12factor.net/zh_cn/)严格区分[构建、发布、运行](https://12factor.net/zh_cn/build-release-run)这三个步骤。每次构建和修改配置后都会产生一次新的发布(`Release`)。OAM 中将 `Component`、`Trait`、`ApplicaitonScope` 组合而成的 `ApplicationConfiguration` 即等同于 `Release`。每次对 `ApplciationConfiguration` 的更新都会创建一个新的 `Release`(跟 [Helm](https://helm.sh) 中的 `Release` 概念一致)。
|
||||
{{% /alert %}}
|
||||
|
||||
下面是一个 `ApplicationConfiguration` 示例。
|
||||
|
||||
```yaml
|
||||
apiVersion: core.oam.dev/v1alpha2
|
||||
kind: ApplicationConfiguration
|
||||
metadata:
|
||||
name: my-app
|
||||
annotations:
|
||||
version: v1.0.0
|
||||
description: "My first application deployment."
|
||||
spec:
|
||||
components:
|
||||
- componentName: my-component
|
||||
parameterValues:
|
||||
- name: PARAMETER_NAME
|
||||
value: SUPPLIED_VALUE
|
||||
- name: ANOTHER_PARAMETER
|
||||
value: "AnotherValue"
|
||||
traits:
|
||||
- name: manualscaler.core.oam.dev
|
||||
version: v1
|
||||
spec:
|
||||
replicaCount: 3
|
||||
scopes:
|
||||
- scopeRef:
|
||||
apiVersion: core.oam.dev/v1alpha2
|
||||
kind: NetworkScope
|
||||
name: my-network
|
||||
```
|
||||
|
||||
关于 `ApplicationConfiguration` 的详细信息参考 OAM 中的 [ApplicationConfiguration 规范](https://github.com/oam-dev/spec/blob/master/7.application_configuration.md)。
|
||||
|
||||
## 参考
|
||||
|
||||
- [The Open Application Model specification - github.com](https://github.com/oam-dev/spec)
|
|
@ -0,0 +1,39 @@
|
|||
本文基于 OAM v1alpha2 版本。
|
||||
|
||||
`ApplicationScope` 根据 `Component` 中的应用逻辑或共同行为划定作用域,将其分组以便于管理。
|
||||
|
||||
`ApplicationScope` 具有以下特征:
|
||||
|
||||
- 一个 `Component` 可能属于一个或多个 `ApplicationScope`;
|
||||
- 有的 `ApplicationScope` 可以限定其中是否可以部署同一个 `Component` 的多个实例;
|
||||
- `ApplicationScope` 可以作为 `Component` 与基础设施的连接层,提供身份、网络或安全能力;
|
||||
- `Trait` 可以根据 `Component` 中定义的 `ApplicationScope` 来执行适当的运维特性;
|
||||
|
||||
目前 OAM 中支持的核心应用范围类型有 [`NetworkScope`](https://github.com/oam-dev/spec/blob/master/standard/scopes/network_scope.md) 和 [`HealthScope`](https://github.com/oam-dev/spec/blob/master/standard/scopes/health_scope.md)。
|
||||
|
||||
下面是使用 `NetworkScope` 来声明作用域的示例:
|
||||
|
||||
```yaml
|
||||
apiVersion: core.oam.dev/v1alpha2
|
||||
kind: NetworkScope
|
||||
metadata:
|
||||
name: my-network
|
||||
labels:
|
||||
region: my-region
|
||||
environment: production
|
||||
spec:
|
||||
networkId: my-network
|
||||
subnetIds:
|
||||
- my-subnetwork-01
|
||||
- my-subnetwork-02
|
||||
- my-subnetwork-03
|
||||
internetGatewayType: nat
|
||||
```
|
||||
|
||||
上面的示例的作用是将三个子网划定为一组网络边界,这通常是使用 VPC 实现。
|
||||
|
||||
关于 `ApplicationScope` 的详细信息请参考 OAM 中的 [ApplicationScope 规范](https://github.com/oam-dev/spec/blob/master/5.application_scopes.md)。
|
||||
|
||||
## 参考
|
||||
|
||||
- [The Open Application Model specification - github.com](https://github.com/oam-dev/spec)
|
|
@ -0,0 +1,43 @@
|
|||
# Component
|
||||
|
||||
本文基于 OAM v1alpha2 版本。
|
||||
|
||||
`Component` 用于定义应用程序的基本组件,其中包含了对 Workload 的引用,一个 Component 中只能定义一个 Workload,这个 Workload 是与平台无关的,可以直接引用 Kubernetes 中的 CRD。
|
||||
|
||||
下面是根据 OAM 规范定义的一个 Component 示例。
|
||||
|
||||
```yaml
|
||||
apiVersion: core.oam.dev/v1alpha2
|
||||
kind: Component
|
||||
metadata:
|
||||
name: my-component
|
||||
spec:
|
||||
workload:
|
||||
apiVersion: core.oam.dev/v1alpha2
|
||||
kind: ContainerizedWorkload
|
||||
spec:
|
||||
os: linux
|
||||
containers:
|
||||
- name: server
|
||||
image: my-image:latest
|
||||
parameters:
|
||||
- name: myServerImage
|
||||
required: true
|
||||
fieldPaths:
|
||||
- ".spec.containers[0].image"
|
||||
```
|
||||
|
||||
`Component` 定义由以下几个部分组成:
|
||||
|
||||
- `metadata`:关于 Component 的信息,主要是针对应用运维的信息。
|
||||
- `workload`:该 Component 的实际工作负载。具体有哪些负载类型可用可以咨询平台提供商,平台运维也可以根据 [Workload 规范](https://github.com/oam-dev/spec/blob/master/3.workload.md) 来扩展负载类型,比如 `Containers`、`Functions`、`VirtualMachine`、[`VirtualService `](https://istio.io/docs/reference/config/networking/virtual-service/) 等。OAM 目前定义的核心负载类型有 [ContainerizedWorkload](https://github.com/oam-dev/spec/blob/master/core/workloads/containerized_workload/containerized_workload.md)(与 Kubernetes 中的 [Pod 定义](https://kubernetes.io/zh/docs/concepts/workloads/pods/pod/)类似,同样支持定义多个容器,但是缺少了 Pod 中的一些属性 )。
|
||||
- `parameters`:在应用程序运行时可以调整的参数,即应用开发者在 `Component` 中的原有定义可以在运行时被应用运维人员覆盖。`parameters` 使用 [JSONPath](https://kubernetes.io/zh/docs/reference/kubectl/jsonpath/) 的方式引用 `spec` 中的字段。
|
||||
|
||||
> `Component` 的配置在应用后是**可更改的(Mutable)**, 有的 [`Trait`](trait.md) 可能会监听 `Component` 的变更并作出相应的操作,每次变更都会导致新的 `ApplicationConfiguration` 发布。
|
||||
>
|
||||
|
||||
关于 Component 的详细信息请参考 OAM 中的 [Component 规范](https://github.com/oam-dev/spec/blob/master/4.component.md)。
|
||||
|
||||
## 参考
|
||||
|
||||
- [The Open Application Model specification - github.com](https://github.com/oam-dev/spec)
|
|
@ -0,0 +1,40 @@
|
|||
# 定义云原生应用
|
||||
|
||||
本文参考的是 [OAM 规范](https://github.com/oam-dev/spec)中对云原生应用的定义,并做出了引申。
|
||||
|
||||
云原生应用是一个相互关联但又不独立的组件(service、task、worker)的集合,这些组件与配置结合在一起并在适当的运行时实例化后,共同完成统一的功能目的。
|
||||
|
||||
## 云原生应用模型
|
||||
|
||||
下图是 OAM 定义的云原生应用模型示意图,为了便于理解,图中相同颜色的部分为同一类别的对象定义。
|
||||
|
||||
![云原生应用模型](../images/cloud-native-app-model.png)
|
||||
|
||||
OAM 的规范中定义了以下对象,它们既是 OAM 规范中的基本术语也是云原生应用的基本组成。
|
||||
|
||||
- **[Workload](../spec/workload)(工作负载)**:应用程序的工作负载类型,由平台提供。
|
||||
- **[Component](../spec/component)(组件)**:定义了一个 `Workload` 的实例,并以基础设施中立的术语声明其运维特性。
|
||||
- **[Trait](../spec/trait)(特征)**:用于将运维特性分配给组件实例。
|
||||
- **[ApplicationScope](../spec/application-scope)(应用作用域)**:用于将组件分组成具有共同特性的松散耦合的应用。
|
||||
- **[ApplicationConfiguration](../spec/application-configuration)(应用配置)**:描述 `Component` 的部署、`Trait` 和 `ApplicationScope`。
|
||||
|
||||
OAM 规范中提供了一个使用以上对象定义云原生应用的[工作流示例](https://github.com/oam-dev/spec/blob/master/examples/workflow.md)。
|
||||
|
||||
## 关注点分离
|
||||
|
||||
下图是不同角色对于该模型的关注点示意图。
|
||||
|
||||
![云原生应用模型中的目标角色](../images/roles.png)
|
||||
|
||||
我们可以看到对于一个云原生应用来说,不同的对象是由不同的角色来负责的:
|
||||
|
||||
- 基础设施运维:提供不同的 `Workload` 类型供开发者使用;
|
||||
- 应用运维:定义适用于不同 `Workload` 的运维属性 `Trait` 和管理 `Component` 的 `ApplicationScope` 即作用域;
|
||||
- 应用开发者:负责应用组件 `Component` 的定义;
|
||||
- 应用开发者和运维:共同将 `Component` 与运维属性 `Trait` 绑定在一起,维护应用程序的生命周期;
|
||||
|
||||
基于 OAM 中的对象定义的云原生应用可以充分利用平台能力自由组合,开发者和运维人员的职责可以得到有效分离,组件的复用性得到大幅提高。
|
||||
|
||||
## 参考
|
||||
|
||||
- [The Open Application Model specification - github.com](https://github.com/oam-dev/spec)
|
|
@ -17,19 +17,19 @@
|
|||
|
||||
启动第一个实例作为Master节点,在web终端上执行:
|
||||
|
||||
1. 初始化master节点:
|
||||
**1.** 初始化master节点:
|
||||
|
||||
```bash
|
||||
kubeadm init --apiserver-advertise-address $(hostname -i)
|
||||
```
|
||||
|
||||
2. 初始化集群网络:
|
||||
**2.** 初始化集群网络:
|
||||
|
||||
```bash
|
||||
kubectl apply -n kube-system -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
|
||||
```
|
||||
|
||||
3. 执行下列初始化命令:
|
||||
**3.** 执行下列初始化命令:
|
||||
|
||||
```bash
|
||||
mkdir -p $HOME/.kube
|
||||
|
@ -37,7 +37,7 @@ cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
|
|||
chown $(id -u):$(id -g) $HOME/.kube/config
|
||||
```
|
||||
|
||||
4. 启动新的实例作为node节点,根据master节点上的提示,在新的web终端上执行:
|
||||
**4.** 启动新的实例作为node节点,根据master节点上的提示,在新的web终端上执行:
|
||||
|
||||
```bash
|
||||
kubeadm join --token 513212.cfea0165b8988d18 192.168.0.13:6443 --discovery-token-ca-cert-hash sha256:b7b6dcc98f3ead3f9e363cb3928fbc04774ee0d63e8eb2897ae30e05aebf8070
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
# Trait
|
||||
|
||||
本文基于 OAM v1alpha2 版本。
|
||||
|
||||
`Trait` 用于定义 `Component` 的运维属性,是对 `Component` 运行时的叠加,需要通过 `ApplicationConfiguration` 的配置将其与 `Component` 绑定,用于动态修改 `Component` 中 `workload` 的行为。
|
||||
|
||||
不同的 `Trait` 可能适用于不同的 `Component`(因为不同的 `Component` 中的 `workload` 可能不同,因此它们的运维特性也可能不同),如流量路由规则(如负载均衡策略、入口路由、出口路由、百分比路由、限流、熔断、超时限制、故障注入等)、自动缩放策略、升级策略、发布策略等。
|
||||
|
||||
`Trait` 还具有以下几个特征:
|
||||
|
||||
- `Trait` 是根据在 `Component` 中引用的顺序应用的,如果某些运维特征本身具有依赖性,可以通过显式排序来解决;
|
||||
- 对于某一类型的 `Trait` 在同一个 `Component` 实例只能应用一个;
|
||||
- 在应用 `Trait` 时,需要进行冲突检查,如果一组 `Trait` 的特性不能满足运维组合,则判定为不合法;
|
||||
|
||||
将运维属性从应用组件本身的定义( `Component`)中剥离有如下几个好处:
|
||||
|
||||
- `Trait` 通常由应用运维人员定义和维护,而不需要应用开发人员参与,应用开发人员对 `Trait` 可能无感知,减轻了应用开发人员的负担;
|
||||
- `Trait` 将云原生应用程序的一些通用运维属性从应用配置中剥离出来,大大提高了运维逻辑的可复用性;
|
||||
- 应用 `Trait` 组合前进行运维特性检查,可以有效防止配置冲突和无法预期的情况发生;
|
||||
|
||||
下面是根据 OAM 规范定义的一个 Trait 示例。
|
||||
|
||||
```yaml
|
||||
apiVersion: core.oam.dev/v1alpha2
|
||||
kind: TraitDefinition
|
||||
metadata:
|
||||
name: manualscalertrait.core.oam.dev
|
||||
spec:
|
||||
appliesToWorkloads:
|
||||
- core.oam.dev/v1alpha2.ContainerizedWorkload
|
||||
definitionRef:
|
||||
name: manualscalertrait.core.oam.dev
|
||||
```
|
||||
|
||||
> CR 即 Custom Resource(自定义资源),指的是实例化后的 Kubernetes [CRD](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/)。`definitionRef` 将 `Trait` shcema 在 OAM 解释器中注册,通过增加一个抽象层,使其与 Operator 框架解耦(毕竟不是说有 CRD 都是面向应用开发者的)。
|
||||
|
||||
OAM 中将 `Trait` 分成了 `core.oam.dev`(核心)、`standard.oam.dev`(标准)及自定义扩展类别。一个 `Trait` 具体适用于哪些 `workload` 可以在 `Trait` 的 `TraitDefinition` 中定义。目前 OAM 中支持的核心 `Trait` 有 [`ManualScalerTrait`](https://github.com/oam-dev/spec/blob/master/core/traits/manual_scaler_trait.md)。
|
||||
|
||||
关于 Trait 的详细请参考 OAM 中的 [Trait 规范](https://github.com/oam-dev/spec/blob/master/6.traits.md)。
|
||||
|
||||
## 参考
|
||||
|
||||
- [The Open Application Model specification - github.com](https://github.com/oam-dev/spec)
|
|
@ -0,0 +1,29 @@
|
|||
# Workload
|
||||
|
||||
本文基于 OAM v1alpha2 版本。
|
||||
|
||||
应用程序可用的 `Workload` 类型是由平台提供商和基础设施运维人员提供的。`Workload` 模型参照 [Kubernetes 规范](https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields)定义,理论上,平台商可以定义如容器、Pod、Serverless 函数、虚拟机、数据库、消息队列等任何类型的 `Workload`。
|
||||
|
||||
下面是一个 `Workload` 定义的是示例。
|
||||
|
||||
```yaml
|
||||
apiVersion: core.oam.dev/v1alpha2
|
||||
kind: WorkloadDefinition
|
||||
metadata:
|
||||
name: schema.example.jimmysong.io
|
||||
spec:
|
||||
definitionRef:
|
||||
name: schema.example.jimmysong.io
|
||||
```
|
||||
|
||||
> CR 即 Custom Resource(自定义资源),指的是实例化后的 Kubernetes [CRD](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/)。应用开发者可以在 `Component` 的 `Workload` 中直接定义 CR。`definitionRef` 将 `Workload` shcema 在 OAM 解释器中注册,通过增加一个抽象层,使其与 Operator 框架解耦(毕竟不是说有 CRD 都是面向应用开发者的),表示可作为负载类型使用。
|
||||
|
||||
请保持 `spec.definitionRef.name` 的值与 `metadata.name` 的值相同,因为 `definitionRef` 是对相应的 `Workload` schema 的引用,对于 Kubernetes 平台来说,即对 [CRD](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) 的引用。应用开发者在定义 [`Component`](component.md) 引用该 `Workload` 的时候需要直接实例化一个 CRD 的配置(及创建一个 CR)。
|
||||
|
||||
OAM 中将 `Workload` 分成了 `core.oam.dev`(核心)、`standard.oam.dev`(标准)及自定义扩展类别。目前 OAM 中支持的核心 `Workload` 有 [`ContainerizedWorkload`](https://github.com/oam-dev/spec/blob/master/core/workloads/containerized_workload/containerized_workload.md)。
|
||||
|
||||
关于 Workload 的详细信息参考 OAM 中的 [Workload 规范](https://github.com/oam-dev/spec/blob/master/3.workload.md)。
|
||||
|
||||
## 参考
|
||||
|
||||
- [The Open Application Model specification - github.com](https://github.com/oam-dev/spec)
|
Binary file not shown.
After Width: | Height: | Size: 80 KiB |
Binary file not shown.
After Width: | Height: | Size: 82 KiB |
Loading…
Reference in New Issue