Skip to content

Instantly share code, notes, and snippets.

@debakarr
Last active April 11, 2023 09:02
Show Gist options
  • Save debakarr/85f08d0dab7cb59e04944cd0460bdc20 to your computer and use it in GitHub Desktop.
Save debakarr/85f08d0dab7cb59e04944cd0460bdc20 to your computer and use it in GitHub Desktop.
Kubernetes 101 demo on KillerCoda Playground

Opening KillerCoda Kubernetes Playground

Configure KubeView

Commands:

git clone https://github.com/benc-uk/kubeview.git
helm install kubeview kubeview/charts/kubeview -f kubeview/charts/example-values.yaml 
k delete svc kubeview
k expose deploy kubeview --port 8000 --type NodePort
k get svc

Output:

controlplane $ git clone https://github.com/benc-uk/kubeview.git
Cloning into 'kubeview'...
remote: Enumerating objects: 1386, done.
remote: Counting objects: 100% (308/308), done.
remote: Compressing objects: 100% (160/160), done.
remote: Total 1386 (delta 160), reused 224 (delta 111), pack-reused 1078
Receiving objects: 100% (1386/1386), 5.17 MiB | 23.54 MiB/s, done.
Resolving deltas: 100% (757/757), done.


controlplane $ helm install kubeview kubeview/charts/kubeview -f kubeview/charts/example-values.yaml 
NAME: kubeview
LAST DEPLOYED: Tue Apr 11 04:22:45 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
=====================================
==== KubeView has been deployed! ====
=====================================
  To get the external IP of your application, run the following:

  export SERVICE_IP=$(kubectl get svc --namespace default kubeview -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
  echo http://$SERVICE_IP

  NOTE: It may take a few minutes for the LoadBalancer IP to be available.
        You can watch the status of by running 'kubectl get --namespace default svc -w kubeview'
        
        
controlplane $ k delete svc kubeview
service "kubeview" deleted


controlplane $ k expose deploy kubeview --port 8000 --type NodePort
service/kubeview exposed


controlplane $ k get svc
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP          46d
kubeview     NodePort    10.98.130.239   <none>        8000:32727/TCP   2s

Configure k8bits

Commands:

git clone https://github.com/learnk8s/k8bit.git
kubectl proxy --address='0.0.0.0' --port=8002 --accept-hosts='.*' --www=k8bit/ &

Output:

controlplane $ git clone https://github.com/learnk8s/k8bit.git
Cloning into 'k8bit'...
remote: Enumerating objects: 11, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 11 (delta 2), reused 11 (delta 2), pack-reused 0
Unpacking objects: 100% (11/11), 342.74 KiB | 11.42 MiB/s, done.


controlplane $ kubectl proxy --address='0.0.0.0' --port=8002 --accept-hosts='.*' --www=k8bit/ &
Starting to serve on [::]:8002

Demo basics

Commands:

k create ns demo
k config set-context --current --namespace=demo
k create deploy my-app --image=debakarr/simple-fastapi-app:1.0.0 --replicas=10 --port 80
k expose deploy my-app --port 80 --type NodePort
k get svc

Output:

controlplane $ k create ns demo
namespace/demo created


controlplane $ k config set-context --current --namespace=demo
Context "kubernetes-admin@kubernetes" modified.


controlplane $ k create deploy my-app --image=debakarr/simple-fastapi-app:1.0.0 --replicas=10 --port 80
deployment.apps/my-app created


controlplane $ k expose deploy my-app --port 80 --type NodePort
service/my-app exposed


controlplane $ k get svc
NAME     TYPE       CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
my-app   NodePort   10.108.4.15   <none>        80:32254/TCP   22s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment