Files
kubevela/docs/examples/kubecondemo
2021-03-26 19:14:07 +08:00
..
2020-12-09 13:37:48 +08:00
2021-03-26 19:14:07 +08:00
2020-11-10 20:09:13 +08:00

Kubecon 2020 NA Kubevela Tutorial

⚠️ This is an outdated tutorial only applies to the old version of kubevela. Before you read, you need to know what you are doing.

Pre-requisites

  • Kubernetes cluster version >1.16 (minikube or kind are fine)
  • Verify with kubectl config current-context and kubectl version
  • One of the crossplane supported public cloud (AWS, Azure, Alibaba Cloud, GCK) access key and secret
  • Install Crossplane(later)
  • Download KubeVela release from release page
  • Unpack the package and add it to PATH by running sudo mv ./vela /usr/local/bin/vela
  • Run vela install

Lab 1: Use vela to deploy a simple application

Purpose: Showcase the simple to use, application centric vela user interfaces.

  • Sync with cluster vela system update

  • List installed workloads vela workloads

  • List installed traits vela traits

  • Deploy a simple application with

    vela svc deploy back -t worker --image crccheck/hello-world --app lab1
    vela svc deploy front -t webservice --image crccheck/hello-world --port 8000 --app lab1
    
  • Show application status vela app show lab1

Lab 2: Add and apply KubeWatch

Purpose: Showcase the steps to add and use capacity from community

  • Create a slack bot
  • Add a cap center vela cap center config mycap https://github.com/oam-dev/catalog/tree/master/registry
  • Check capabilities vela cap ls
  • Install the kubewatch capability vela cap add mycap/kubewatch
  • Create an application vela comp deploy mycomp -t webservice --image crccheck/hello-world --port 8000 --app lab2
  • Add kubewatch trait to the application vela kubewatch mycomp --app lab2 --webhook https://hooks.slack.com/<yourid>
  • Check the slack channel to verify the notifications

Lab 3: Manage cloud resource and applications in application centric way

Purpose: Showcase the application centric view of appfile

Install Crossplane (This lab uses crossplane version 0.13)

Also the examples are based on Alibaba Cloud settings

  • Create crossplane namespace: kubectl create ns crossplane-system
  • Install crossplane helm chart: helm install crossplane charts/crossplane/ --namespace crossplane-system
  • Install crossplane cli: curl -sL https://raw.githubusercontent.com/crossplane/crossplane/release-0.13/install.sh | sh
  • Add crossplane to PATH: sudo mv kubectl-crossplane /usr/local/bin
  • Configure cloud provider(Alibaba Cloud)
    • Add cloud provider: kubectl crossplane install provider crossplane/provider-alibaba:v0.3.0
    • Create provider secret: kubectl create secret generic alibaba-creds --from-literal=accessKeyId=<change here> --from-literal=accessKeySecret=<change here> -n crossplane-system
    • Configure the provider: kubectl apply -f script/provider.yaml
  • Configure infrastructure: kubectl crossplane install configuration crossplane/getting-started-with-alibaba:v0.13

Import the database workload definition

First, register the db workload definition: kubectl apply -f script/def_db.yaml The webservice workload is customized a little. kubectl apply -f script/webservice.yaml Don't forget to update vela: vela system update

Apply the appfile

vela up

Access the web-ui

If you have a cluster supporting Ingress, the route trait will work. kubectl get ingress command will show the ip address of the web-ui. Copy that service and add the <ip address> kubevela.kubecon.demo record to your local machine's /etc/hosts. Then you may access the GUI from web browser.

If you don't have Ingress installed, the eaisest way to access the demo app is through port forwarding :kubectl port-forward <your webui pod name> 8080 and access it from browser using http://localhost:8080.