From d720edf98d8a1658bfe5328c0acc31450f2709cb Mon Sep 17 00:00:00 2001 From: Sherlock113 Date: Fri, 28 Aug 2020 21:29:08 +0800 Subject: [PATCH 1/2] Add enabling service mesh in components Signed-off-by: Sherlock113 --- .../docs/pluggable-components/release-v201.md | 19 --- .../docs/pluggable-components/service-mesh.md | 134 ++++++++++++++++++ 2 files changed, 134 insertions(+), 19 deletions(-) delete mode 100644 content/en/docs/pluggable-components/release-v201.md create mode 100644 content/en/docs/pluggable-components/service-mesh.md diff --git a/content/en/docs/pluggable-components/release-v201.md b/content/en/docs/pluggable-components/release-v201.md deleted file mode 100644 index 63db6a2f3..000000000 --- a/content/en/docs/pluggable-components/release-v201.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "KubeSphere Service Mesh System" -keywords: "kubernetes, istio, kubesphere, service-mesh, microservice" -description: "How to Enable KubeSphere Service Mesh System" - -linkTitle: "KubeSphere Service Mesh System" -weight: 400 ---- - -KubeSphere 2.0.1 was released on **June 9th, 2019**. - -## Bug Fix - -- Fix the issue that CI/CD pipeline cannot recognize correct special characters in the code branch. -- Fix CI/CD pipeline's issue of being unable to check logs. -- Fix no-log data output problem caused by index document fragmentation abnormity during the log query. -- Fix prompt exceptions when searching for logs that do not exist. -- Fix the line-overlap problem on traffic governance topology and fixed invalid image strategy application. -- Many more bugfix diff --git a/content/en/docs/pluggable-components/service-mesh.md b/content/en/docs/pluggable-components/service-mesh.md new file mode 100644 index 000000000..7eb6d77fe --- /dev/null +++ b/content/en/docs/pluggable-components/service-mesh.md @@ -0,0 +1,134 @@ +--- +title: "Enable Service Mesh" +keywords: "Kubernetes, istio, KubeSphere, service-mesh, microservices" +description: "How to Enable KubeSphere Service Mesh" + +linkTitle: "Enable Service Mesh" +weight: 3540 +--- + +## What is KubeSphere Service Mesh + +On the basis of [Istio](https://istio.io/), KubeSphere Service Mesh visualizes microservices governance and traffic management. It features a powerful toolkit including **circuit breaking, blue-green deployment, canary release, traffic mirroring, distributed tracing, observability and traffic control**. Developers can easily get started with Service Mesh without any code hacking, with the learning curve of Istio greatly reduced. All features of KubeSphere Service Mesh are designed to meet users' demand for their business. + +For more information, see related sections in Project Administration and Usage. + +## Enable Service Mesh before Installation + +### Installing on Linux + +When you install KubeSphere on Linux, you need to create a configuration file, which lists all KubeSphere components. + +1. In the tutorial of [Installing KubeSphere on Linux](https://kubesphere-v3.netlify.app/docs/installing-on-linux/introduction/multioverview/), you create a default file **config-sample.yaml**. Modify the file by executing the following command: + +```bash +vi config-sample.yaml +``` + +{{< notice note >}} + +If you adopt [All-in-one Installation](https://kubesphere-v3.netlify.app/docs/quick-start/all-in-one-on-linux/), you do not need to create a config-sample.yaml file as you can create a cluster directly. Generally, the all-in-one mode is for users who are new to KubeSphere and look to get familiar with the system. If you want to enable Service Mesh in this mode (e.g. for testing purpose), refer to the following section to see how Service Mesh can be installed after installation. + +{{}} + +2. In this file, navigate to `servicemesh` and change `false` to `true` for `enabled`. Save the file after you finish. + +```bash +servicemesh: + enabled: true # Change "false" to "true" +``` + +3. Create a cluster using the configuration file: + +```bash +./kk create cluster -f config-sample.yaml +``` + +### **Installing on Kubernetes** + +When you install KubeSphere on Kubernetes, you need to download the file [cluster-configuration.yaml](https://raw.githubusercontent.com/kubesphere/ks-installer/master/deploy/cluster-configuration.yaml) for cluster setting. If you want to install Service Mesh, do not use `kubectl apply -f` directly for this file. + +1. In the tutorial of [Installing KubeSphere on Kubernetes](https://kubesphere-v3.netlify.app/docs/installing-on-kubernetes/introduction/overview/), you execute `kubectl apply -f` first for the file [kubesphere-installer.yaml](https://raw.githubusercontent.com/kubesphere/ks-installer/master/deploy/kubesphere-installer.yaml). After that, to enable Service Mesh, create a local file cluster-configuration.yaml. + +```bash +vi cluster-configuration.yaml +``` + +2. Copy all the content in the file [cluster-configuration.yaml](https://raw.githubusercontent.com/kubesphere/ks-installer/master/deploy/cluster-configuration.yaml) and paste it to the local file just created. +3. In this local cluster-configuration.yaml file, navigate to `servicemesh` and enable Service Mesh by changing `false` to `true` for `enabled`. Save the file after you finish. + +```bash +servicemesh: + enabled: true # Change "false" to "true" +``` + +4. Execute the following command to start installation: + +```bash +kubectl apply -f cluster-configuration.yaml +``` + +Whether you install KubeSphere on Linux or on Kubernetes, you can check the status of the component in the web console of KubeSphere after installation in **Components**. + +## Enable Service Mesh after Installation + +1. Log in the console as `admin`. Click **Platform** at the top left corner and select **Clusters Management**. + +![clusters-management](https://ap3.qingstor.com/kubesphere-website/docs/20200828111130.png) + +2. Click **CRDs** and enter `clusterconfiguration` in the search bar. Click the result to view its detailed page. + +{{< notice info >}} + +A Custom Resource Definition (CRD) allows users to create a new type of resources without adding another API server. They can use these resources like any other native Kubernetes objects. + +{{}} + +3. In **Resource List**, click the three dots on the right of `ks-installer` and select **Edit YAML**. + +![edit-yaml](https://ap3.qingstor.com/kubesphere-website/docs/20200827182002.png) + +4. In this yaml file, navigate to `servicemesh` and change `false` to `true` for `enabled`. After you finish, click **Update** at the bottom right corner to save the configuration. + +```bash +servicemesh: + enabled: true # Change "false" to "true" +``` + +5. You can use the web kubectl to check the installation process by executing the following command: + +```bash +kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f +``` + +{{< notice tip >}} + +You can find the web kubectl tool by clicking the hammer icon at the bottom right corner of the console. + +{{}} + +6. Check the status in **Components** or execute the following command through kubectl to see the status of related pods. + +```bash +kubectl get pod -n istio-system +``` + +The output may look as follows if the component runs successfully: + +```bash +NAME READY STATUS RESTARTS AGE +istio-citadel-7f676f76d7-n2rsr 1/1 Running 0 1h29m +istio-galley-78688b475c-kvkbx 1/1 Running 0 1h29m +istio-ingressgateway-8569f8dcb-rmvl5 1/1 Running 0 1h29m +istio-init-crd-10-1.4.8-fpvwg 0/1 Completed 0 1h43m +istio-init-crd-11-1.4.8-5rc4g 0/1 Completed 0 1h43m +istio-init-crd-12-1.4.8-62zmp 0/1 Completed 0 1h43m +istio-init-crd-14-1.4.8-ngq4d 0/1 Completed 0 1h43m +istio-pilot-67fd55d974-g5bn2 2/2 Running 4 1h29m +istio-policy-668894cffc-8tpt4 2/2 Running 7 1h29m +istio-sidecar-injector-9c4d79658-g7fzf 1/1 Running 0 1h29m +istio-telemetry-57fc886bf8-kx5rj 2/2 Running 7 1h29m +jaeger-collector-76bf54b467-2fh2v 1/1 Running 0 1h17m +jaeger-operator-7559f9d455-k26xz 1/1 Running 0 1h29m +jaeger-query-b478c5655-s57k8 2/2 Running 0 1h17m +``` \ No newline at end of file From e3ce6a18d940322bb73906da701ba85c7fb7baa6 Mon Sep 17 00:00:00 2001 From: Sherlock113 Date: Sat, 29 Aug 2020 13:12:47 +0800 Subject: [PATCH 2/2] add verification part Signed-off-by: Sherlock113 --- .../docs/pluggable-components/service-mesh.md | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/content/en/docs/pluggable-components/service-mesh.md b/content/en/docs/pluggable-components/service-mesh.md index 7eb6d77fe..2949ade02 100644 --- a/content/en/docs/pluggable-components/service-mesh.md +++ b/content/en/docs/pluggable-components/service-mesh.md @@ -68,8 +68,6 @@ servicemesh: kubectl apply -f cluster-configuration.yaml ``` -Whether you install KubeSphere on Linux or on Kubernetes, you can check the status of the component in the web console of KubeSphere after installation in **Components**. - ## Enable Service Mesh after Installation 1. Log in the console as `admin`. Click **Platform** at the top left corner and select **Clusters Management**. @@ -107,7 +105,21 @@ You can find the web kubectl tool by clicking the hammer icon at the bottom righ {{}} -6. Check the status in **Components** or execute the following command through kubectl to see the status of related pods. +## Verify the Installation of Component + +{{< tabs >}} + +{{< tab "Verify the Component in Dashboard" >}} + +Go to **Components** and check the status of Istio. You may see an image as follows: + +![Istio](https://ap3.qingstor.com/kubesphere-website/docs/20200829130918.png) + +{{}} + +{{< tab "Verify the Component through kubectl" >}} + +Execute the following command to check the status of pods: ```bash kubectl get pod -n istio-system @@ -131,4 +143,8 @@ istio-telemetry-57fc886bf8-kx5rj 2/2 Running 7 1h29m jaeger-collector-76bf54b467-2fh2v 1/1 Running 0 1h17m jaeger-operator-7559f9d455-k26xz 1/1 Running 0 1h29m jaeger-query-b478c5655-s57k8 2/2 Running 0 1h17m -``` \ No newline at end of file +``` + +{{}} + +{{}} \ No newline at end of file