v2.1
v2.0
v1.0
  1. Release Notes
    1. Release Notes - 2.1.1Latest
    1. Release Notes - 2.1.0
    1. Release Notes - 2.0.2
    1. Release Notes - 2.0.1
    1. Release Notes - 2.0.0
  1. Introduction
    1. Introduction
    1. Features
    1. Architecture
    1. Advantages
    1. Glossary
  1. Installation
    1. Introduction
      1. Intro
      2. Port Requirements
      3. Kubernetes Cluster Configuration
    1. Install on Linux
      1. All-in-One Installation
      2. Multi-Node Installation
      3. High Availability Configuration
      4. Air Gapped Installation
      5. StorageClass Configuration
      6. Enable All Components
    1. Install on Kubernetes
      1. Prerequisites
      2. Install on K8s
      3. Air Gapped Installation
      4. Install on GKE
    1. Pluggable Components
      1. Pluggable Components
      2. Enable Application Store
      3. Enable DevOps System
      4. Enable Logging System
      5. Enable Service Mesh
      6. Enable Alerting and Notification
      7. Enable Metrics-server for HPA
      8. Verify Components Installation
    1. Upgrade
      1. Overview
      2. All-in-One
      3. Multi-node
    1. Third-Party Tools
      1. Configure Harbor
      2. Access Built-in SonarQube and Jenkins
      3. Enable built-in Grafana Installation
      4. Load Balancer plugin in Bare Metal - Porter
    1. Authentication Integration
      1. Configure LDAP/AD
    1. Cluster Operations
      1. Add or Cordon Nodes
      2. High Risk Operations
      3. Uninstall KubeSphere
  1. Quick Start
    1. 1. Getting Started with Multi-tenancy
    1. 2. Expose your App Using Ingress
    1. 3. Compose and Deploy Wordpress to K8s
    1. 4. Deploy Grafana Using App Template
    1. 5. Job to Compute π to 2000 Places
    1. 6. Create Horizontal Pod Autoscaler
    1. 7. S2I: Publish your App without Dockerfile
    1. 8. B2I: Publish Artifacts to Kubernete
    1. 9. CI/CD based on Spring Boot Project
    1. 10. Jenkinsfile-free Pipeline with Graphical Editing Panel
    1. 11. Canary Release of Bookinfo App
    1. 12. Canary Release based on Ingress-Nginx
    1. 13. Application Store
  1. DevOps
    1. Pipeline
    1. Create SonarQube Token
    1. Credentials
    1. Set CI Node for Dependency Cache
    1. Set Email Server for KubeSphere Pipeline
  1. User Guide
    1. Configration Center
      1. Secrets
      2. ConfigMap
      3. Configure Image Registry
  1. Logging
    1. Log Query
  1. Developer Guide
    1. Introduction to S2I
    1. Custom S2I Template
  1. API Documentation
    1. API Documentation
    1. How to Access KubeSphere API
  1. Troubleshooting
    1. Troubleshooting Guide for Installation
  1. FAQ
    1. Telemetry
KubeSphere®️ 2020 All Rights Reserved.

Deploy KubeSphere on GKE

Edit

KubeSphere+GKE

This guide walks you through the steps of deploying KubeSphere on Google Kubernetes Engine.

Prepare a GKE cluster

At first, a standard Kubernetes in GKE is a prerequisite of installing KubeSphere. We create a GKE cluster with 1.14.8-gke.17 in this demo, and choose the n1-standard-2 (2 vCPU, 7.5 GB memory) and three nodes in Machine configuration.

Note:

  • n1-standard-2 (2 vCPU, 7.5 GB memory) is the minimal requirement. It is recommended to choose higher machine configuration for production environment.
  • n1-standard-2 (2 vCPU, 7.5 GB memory) is used for minimal installation of KubeSphere. If you want to install any pluggable component, you need to provide more machine resource. Please see Enabling pluggable components installation for more information.
  • Supported Kubernetes versions: 1.15 ≤ K8s version ≤ 1.17 for KubeSphere 2.1.1; 1.13.0 ≤ K8s version ≤ 1.15 for KubeSphere 2.1.0.

Choose GKE

Prepare Machines

Create Tiller Service Account

KubeSphere v2.1 requires Helm (>= v2.10.0 and < 3.0, excluding v2.16.0) to continue the installation. By default, Tiller is not installed on GKE, thus we need to install Tiller first.

When GKE cluster is ready, we can connect to Cloud Shell.

Cloud Shell

Here, we create helm-rbac.yaml in GKE as follows.

apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system

Let's create these resources using kubectl.

kubectl apply -f helm-rbac.yaml

Deploy Tiller

Initialize Helm using the following command.

helm init --service-account=tiller --tiller-image=gcr.io/kubernetes-helm/tiller:v2.14.1 --history-max 300

Check the Tiller status using kubectl. When it displays 1/1, it means you are ready to continue.

kubectl get deployment tiller-deploy -n kube-system

Install KubeSphere

Install KubeSphere using kubectl. The following command is only to start the default minimal installation.

kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/v2.1.1/kubesphere-minimal.yaml

Verify the real-time logs, when you see the following outputs, congratulation! You can access KubeSphere in your browser.

$ kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f


#####################################################
###              Welcome to KubeSphere!           ###
#####################################################
Console: http://10.128.0.34:30880
Account: admin
Password: P@88w0rd
NOTES:
  1. After logging into the console, please check the
     monitoring status of service components in
     the "Cluster Status". If the service is not
     ready, please wait patiently. You can start
     to use when all components are ready.
  2. Please modify the default password after login.
#####################################################

Access KubeSphere console

In this section, we will show you how to access KubeSphere console by changing service type to LoadBalancer.

K8s Dashboard

Select Services & Ingress > ks-console, then click EDIT and modify the service type from NodePort to LoadBalancer.

ks-console service

Now, you can access KubeSphere console using the endpoint that was generated by GKE.

ks-console endpoint

Note: In addition to changing the service type to LoadBalancer, you can also access KubeSphere console via NodeIP:NodePort. You may need to allow port 30880 in firewall rules.

Log in KubeSphere console using the default account admin / P@88w0rd. You will see the dashboard as shown in the following screenshot.

KubeSphere Dashboard

Enable Pluggable Components (Optional)

The installation above is only used for a default minimal installation. Execute the following command to open the configmap in order to enable more pluggable components. Make sure your cluster has enough CPU and memory. Please see Configuration Table for the requirements and Enable Pluggable Components for the instructions.

If you want to enable DevOps or Etcd monitoring, please create CA and Etcd certificates first. See ks-installer for detailed guide.

kubectl edit cm -n kubesphere-system ks-installer