k8dash is now Skooner! We are currently updating our documentation to reflect this change.
# Installing Skooner on Kubernetes Cluster
To Install and run Skooner on your Kubernetes cluster
- Download kubernetes-skooner.yaml (opens new window).
- Deploy Skooner by running the following command:
kubectl apply -f https://raw.githubusercontent.com/skooner-k8s/skooner/master/kubernetes-skooner.yaml
To access Skooner, you must make it publicly visible. If you have an ingress server setup, you can accomplish this by adding a route:
kind: Ingress apiVersion: extensions/v1beta1 metadata: name: skooner namespace: kube-system spec: rules: - host: skooner.example.com http: paths: - path: / backend: serviceName: skooner servicePort: 80
- Sign In
- The easiest option to sign in is to create a dedicated service account and use its token. This can be accomplished using the following script:Retrieve the
# Create the service account in the current namespace (we assume default) kubectl create serviceaccount skooner-sa # Give that service account root on the cluster kubectl create clusterrolebinding skooner-sa --clusterrole=cluster-admin --serviceaccount=default:skooner-sa # Find the secret that was created to hold the token for the SA kubectl get secrets # Show the contents of the secret to extract the token kubectl describe secret skooner-sa-token-xxxxx
tokenvalue from the secret and enter it into the login screen to access the dashboard.
- You can also log in to Skooner with OIDC or NodePort.
- The easiest option to sign in is to create a dedicated service account and use its token. This can be accomplished using the following script:
# Installing Metrics Server
Skooner relies heavily on metrics-server to display real-time cluster metrics. It is strongly recommended that you install metrics-server for the best experience from Skooner.
# Running OIDC on Skooner
Skooner makes using OpenId Connect for authentication easy. Assuming your cluster is configured to use OIDC, all you need to do is create a secret containing your credentials and run the kubernetes-skooner-oidc.yaml config. To learn more about configuring a cluster for OIDC, check out these great links:
- Authenticating in Kubernetes (opens new window)
- Kubernetes Day 2 Operations: AuthN/AuthZ with OIDC and a Little Help From Keycloak (opens new window)
- kubectl with OpenID Connect (opens new window)
You can deploy Skooner with OIDC support using something like the following script...
NOTE: never trust a file downloaded from the internet. Make sure to review the contents of kubernetes-skooner-oidc.yaml before running the script below.
OIDC_URL=<put your endpoint url here... something like https://accounts.google.com> OIDC_ID=<put your id here... something like blah-blah-blah.apps.googleusercontent.com> OIDC_SECRET=<put your oidc secret here> kubectl create secret -n kube-system generic Skooner \ --from-literal=url="$OIDC_URL" \ --from-literal=id="$OIDC_ID" \ --from-literal=secret="$OIDC_SECRET"
kubectl apply -f https://raw.githubusercontent.com/skooner-k8s/skooner/master/kubernetes-skooner-oidc.yaml
Additionally, there are a few other OIDC options you can provide via environment variables. First is
OIDC_SCOPES. The default value for this value is
openid email, but additional scopes can also be added using something like
OIDC_SCOPES="openid email groups".
The other option is
OIDC_METADATA. Skooner uses the excellent node-openid-client module.
OIDC_METADATA will take a json string and pass it to the Client constructor. Docs here. For example,
# Running Skooner with Nodeport
If you do not have an ingress server setup, you can utilize a NodePort service as configured in the kubernetes-skooner-nodeport.yaml. This is ideal when creating a single node master, or if you want to get up and running as fast as possible. This will map the Skooner port 4654 to a randomly selected port on the running node. The assigned port can be found using
$ kubectl get svc --namespace=kube-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE skooner NodePort 10.107.107.62 <none> 4654:32565/TCP 1m