This document shows how to deploy an application in KubeSphere via App Template, demonstrating the basic functionality of the application repository, application templates, and application management.
You need to create a workspace and project, see the Admin Quick Start if not yet.
About 10 minutes.
The backend of the application repository can be either the QingStor Object Storage or the AWS Object Storage, where the packages are composed of Helm template files of the applications. Therefore, before adding an application repository to KubeSphere, you need to create an object storage and upload application Helm packages in advance.
This documentation prepares a testing application repository based on QingStor Object Storage.
1.1. Sign in with
cluster-admin and navigate to Platform → App Repositories, then Click Add App Repository.
1.2. Fill in the basic information, note that there is an example repository of http protocol
http://docs-repo.gd2.qingstor.com, you can validate if this URL is available, choose OK when you're done.
1.3. Select App Templates on the top of this page, it will import all of the applications from the object storage. There is only Nginx App template could be deployed since it's only one testing package been uploaded in that object storage.
2.1. When you have added the application repository to the platform, you can log out and sign in with
project-regular. Then select App Templates on the top of this page, and enter into the Nginx app.
Switch Setting Files to inspect the configuration files of the application package, e.g.
2.2. Click Deploy App and fill in the basic information.
2.3. Name can be customized by yourself, choose the corresponding Workspace and Project as the environment.
Params Configuration is the default value in the
values.yaml file and support for both yaml and table edit, just leave the default values in Params Configuration.
2.4. Then choose Deploy to deploy Nginx app to KubeSphere.
2.5. Navigate to Applications, then you can see the application
active from the application list.
3.1. Enter into
docs-demo, you will be able to see its service and workload in
Resource Status page, as well as Environmental Variables and Operation Logs information.
3.2. Next we are going to expose this service outside of the cluster via NodePort.
docs-demo-nginx service, then click More and choose Edit Internet Access.
3.3. Select NodePort from the drop down list.
Internet Access supports for 3 access types:
- None: This is the default service type which is used to expose the service on a cluster-internal IP. Choosing this value makes the service only reachable from within the cluster.
- NodePort: Exposes the service on each Node’s IP at a static port (the NodePort). A ClusterIP service, to which the NodePort service will route, is automatically created. You’ll be able to contact the NodePort service, from outside the cluster, by requesting
- LoadBalancer: Exposes the service externally using a cloud provider’s load balancer. (It requires to install the cloud provider LoadBalancer plugin, qingcloud-cloud-controller-manager is in development and will provide LB service soon).
3.4. Therefore it will generate a Node Port, for example, here is
30518 that we can access this service using
Note: If you want to access the service, you might need to bind the EIP and configure port forwarding. Then add the corresponding port (e.g. 30518) to the firewall rules to ensure that the external network traffic can pass through the port. In that case, external access is available.
For example, if KubeSphere cluster is deployed on QingCloud platform within VPC, thus we need to add
30518 to the port forwarding rule on the VPC network and then release the port on the firewall.
30518 to the port forwarding rule
Release the port on the firewall
At this point, you will be able to access the Nginx service via