You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2018/09/03 02:59:49 UTC

[incubator-dubbo-website] branch asf-site updated: Merge pull request #111, add English version and modify Chinese version for dubbo-k8s.ms

This is an automated email from the ASF dual-hosted git repository.

liujun pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new e92cbdf  Merge pull request #111, add English version and modify Chinese version for dubbo-k8s.ms
e92cbdf is described below

commit e92cbdf5a4448401325c4600435b2a576956e5fa
Author: Xiao Chen <37...@users.noreply.github.com>
AuthorDate: Mon Sep 3 10:59:47 2018 +0800

    Merge pull request #111, add English version and modify Chinese version for dubbo-k8s.ms
---
 blog/en-us/dubbo-k8s.md | 75 +++++++++++++++++++++++++++++++++++++++++++++++--
 blog/zh-cn/dubbo-k8s.md |  6 ++--
 2 files changed, 76 insertions(+), 5 deletions(-)

diff --git a/blog/en-us/dubbo-k8s.md b/blog/en-us/dubbo-k8s.md
index ecd151a..287414c 100644
--- a/blog/en-us/dubbo-k8s.md
+++ b/blog/en-us/dubbo-k8s.md
@@ -1,3 +1,76 @@
+# General goal
+
+Dubbo's provider don't care about service registration.Open its Dubbo service port,the declaration and publishment of the service will be executed by kubernetes.
+Dubbo's consumer directly discovers the corresponding service endpoints of kubernetes during service discovery procedure, thereby reusing Dubbo's existing microservice channel capabilities.The benefit is that there is no need to rely on any third-party soft-loaded registry and it can be seamlessly integrated into the multi-tenant security system of kubernetes. Reference demo : [https://github.com/dubbo/dubbo-kubernetes](https://github.com/dubbo/dubbo-kubernetes)
+
+# Introduction
+
+Kubernates is a hierarchical system with rich secondary development function based on the expansibility.
+
+* First of all, Kubernates's core function is to manage the container cluster. Kubernates manages the  storage and calculation of containerized cluster, based on the container runtime (CRI), network interface (CNI) and storage service interface (CSI/FV).
+* Secondly,Kubernates has application-oriented deployment and routing capabilities,including statefulness/statelessness,batch processing and service-oriented applications,especially the application management based on microservices architecture which includes service discovery,service definition and unified configuration on the basis of configmap.
+* Finally, on top of the abstract model of the basic resource (mainly the resources of abstract infrastructure, IaaS) and the application layer is the governance layer, which includes elastic expansion, namespaces/tenants and so on. Naturally, it is a matter of course to set up service about unified log center and omnidirectional monitoring on the Kubernetes based upon the foundational capabilities of atomic inner core.
+
+We will explain the above description with a diagram of Kubernetes Architecture. In 2018, Kubernetes took a qualitative step toward the standard PaaS basement.Someone hold opinions that the reason is the ability for secondary development on the basis of the expansion and someone think the key is declarative programming and strong community operations relying on Google and Redhat. However,I think the essential reason is Layered architecture and the abstract domain modeling in the problem  [...]
+
+
+
+![img](../../img/blog/k8s/1.png)
+
+
+From a micro-service architecture perspective, Kubernetes is a micro-service framework (more appropriate than a micro-service platform or toolkit set at this time) in a sense, supporting the basic capabilities of microservices for service discovery/registration. Use the following table to make a brief description.
+
+| The design of microservice | The function of Kubernetes |
+| :--- | :--- |
+| Point 1:API gateway  | Ingress |
+| Point 2:Statelessness, distinguish between stateful and stateless applications  | Stateless corresponds to Deployment,and stateful corresponds to StatefulSet |
+| Point 3:Horizontal expansion of the database  | Headless service points to PaaS service or StatefulSet deployment |
+| Point 4:Cache   | Headless service points to PaaS service or StatefulSet deployment |
+| Point 5:Service splitting and service discovery  | Service |
+| Point 6:Service orchestration and flexibility  | Replicas of deployment |
+| Point 7:Unified configuration center  | ConfigMap |
+| Point 8:Unified log center  | DaemonSet deploys log agent |
+| Point 9:Circut break, current limiting and downgrade  | Service Mesh |
+| Point 10:Comprehensive monitoring   | Cadsivor, DaemonSet deploys and monitors Agent |
+
+By the way, the microservices field involves many issues, which can be explained as follows. When building microservices, we will delve into Distributed System, a discipline has a 40-year research background and is rooted in the adaptive system theory. It's a bit complicated, but the concepts it covers are more or less heard for us, and it solves problems that we're familiar with:
+
+* Deployment
+* Delivery
+* APIs
+* Versioning
+* Contracts
+* Scaling / Autoscaling
+* Service Discovery
+* Load Balancing
+* Routing / Adaptive Routing
+* Health Checking
+* Configuration
+* Circuit Breaking
+* Bulk-heads
+* TTL / Deadlining
+* Latency Tracing
+* Service Causal Tracing
+* Distributed logging
+* Metrics Exposure, Collection
+
+For Kubernetes, only a few of problems are solved. Problems such as Dynamic Routing, Stability Control (Circuit Breaking, Bulk-heads, etc.) , Distributed Service Tracking, etc. are all the blank. These problems are exactly what Service Mesh needs to solve, and these also plays an important role in CNCF's Tail Map. Of course, as Dubbo is a basically complete microservices infrastructure (Dubbo is based on the Sidecar which is a common solution for solving cross-language claims in Service  [...]
+
+> <span data-type="color" style="color:rgb(119, 119, 119)"><span data-type="background" style="background-color:rgb(255, 255, 255)">A service mesh is a dedicated infrastructure layer for handling service-to-service communication. It&#x27;s responsible for the reliable delivery of requests through the complex topology of services that comprise a modern, cloud native application.</span></span>
+
+We will know the existing solution, Dubbo integrates the Clould Native Equipment - Kubernetes's basic abilities to solve the microservices's core problems, can be regarded as a Service Mesh solution in a narrow sense, but it can only be used in the Java field. You can understand the above words as a joke, haha.
+
+# T<span data-type="color" style="color:rgb(51, 51, 51)"><span data-type="background" style="background-color:rgb(255, 255, 255)">hought</span></span>/Plan
+
+Kubernetes is a natural address registration center for microservices, similar to zookeeper, VIPserver and Configserver used internally by Alibaba. Specifically, the Pod in kubernetes is a running instance of the application. The scheduled deployment/start/stop of the Pod will call the API-Server service to maintain its state to ETCD. The service in kubernetes is coresponded to the concept of the microservices defined as follows.
+
+> A Kubernetes Service is an abstraction layer which defines a logical set of Pods and enables external traffic exposure, load balancing and service discovery for those Pods.
+
+In conclusion, the kubernetes service has the following characteristics:
+
+* Each Service has a unique name and corresponding IP. IP is automatically assigned by kubernetes and the name is defined by the developer.
+* Service IP has several manifestations: ClusterIP, NodePort, LoadBalance and Ingress. ClusterIP is mainly used for intra-cluster communication; NodePort, Ingress and LoadBalance, which are used to expose services to access portals outside the cluster.
+
 At first sight, the service of kubernetes has its own IP, while under the original fixed mindset: Dubbo/HSF service is aggregated by the IP of the entire service cluster, that means, kubernetes and Dubbo/HSF look like something different in natural, but when carefully thinking, the difference becomes insignificant. Because the only IP under kubernetes is just a Virtural IP--VIP, behind the vip are multiple endpoints, which is the factual processing node.
 
 Here we only discuss the situation that the Dubbo service in the cluster is accessed in the same kubernetes cluster, As for the provider outside kubernetes to access the provider in kubernetes, since it involves the problem of network address space, and it usually requires GateWay/loadbalance for mapping conversion, which there not detail discussion for this case. Besides, there are two options available for kubernetes:
@@ -61,5 +134,3 @@ The following is a demo deployment through kubernetes service in Alibaba Cloud's
 - There is always an error in deployment, maybe there is a problem with the kubernetes service. Need further investigation.
 
 {"kind":"Pod","namespace":"lzumwsrddf831iwarhehd14zh2-default","name":"dubbo-k8s-demo-610694273-jq238","uid":"12892e67-8bc8-11e8-b96a-00163e02c37b","apiVersion":"v1","resourceVersion":"850282769"},"reason":"FailedSync","message":"Error syncing pod","
-
- 
diff --git a/blog/zh-cn/dubbo-k8s.md b/blog/zh-cn/dubbo-k8s.md
index aadd0df..7438e07 100644
--- a/blog/zh-cn/dubbo-k8s.md
+++ b/blog/zh-cn/dubbo-k8s.md
@@ -1,8 +1,8 @@
-## 大体目标大体上
+## 大体目标
 
-Dubbo的provider不在关心服务注册的事宜,只需要把其Dubbo服务端口打开,由kubernetes来进行服务的声明和发布;Dubbo的consumer在服务发现时直接发现kubernetes的对应服务endpoints,从而复用Dubbo已有的微服务通道能力。好处是无需依赖三方的软负载注册中心;同时无缝融入kubernetes的多租户安全体系。Demo的代码参照: https://github.com/dubbo/dubbo-kubernetes
+Dubbo的provider不再关心服务注册的事宜,只需要把其Dubbo服务端口打开,由kubernetes来进行服务的声明和发布;Dubbo的consumer在服务发现时直接发现kubernetes的对应服务endpoints,从而复用Dubbo已有的微服务通道能力。好处是无需依赖三方的软负载注册中心;同时无缝融入kubernetes的多租户安全体系。Demo的代码参照: https://github.com/dubbo/dubbo-kubernetes
 
-## 闲淡
+## 闲谈
 
 Kubernates是建立在扩展性的具备二次开发的功能层次丰富的体系化系统