Creating a custom cluster
kind create cluster --config config.yaml
kubectl apply -f toolkit/metric-server/metric-server.yml
kubectl apply -f toolkit/keda/keda-2.2.0.yaml
helm repo add cilium https://helm.cilium.io/
helm install cilium cilium/cilium --version 1.14 \
--namespace kube-system \
--set routingMode=native \
--set kubeProxyReplacement=strict \
--set externalIPs.enabled=true \
--set nodePort.enabled=true \
--set hostPort.enabled=true \
--set hostServices.enabled=true \
--set ingressController.enabled=true \
--set ingressController.service.type=NodePort \
--set ingressController.service.insecureNodePort=30080 \
--set ingressController.service.secureNodePort=30443 \
--set ingressController.loadbalancerMode=shared \
--set prometheus.enabled=true \
--set prometheus.serviceMonitor.trustCRDsExist=true \
--set operator.prometheus.enabled=true \
--set prometheus.serviceMonitor.trustCRDsExist=true \
--set hubble.relay.enabled=true \
--set hubble.ui.enabled=true \
--set hubble.metrics.enableOpenMetrics=true \
--set hubble.metrics.enabled="{dns,drop,tcp,flow,port-distribution,icmp,httpV2:exemplars=true;labelsContext=source_ip\\,source_namespace\\,source_workload\\,destination_ip\\,destination_namespace\\,destination_workload\\,traffic_direction}" \
--set envoyConfig.enabled=true \
--set loadBalancer.l7.backend=envoy \
--set-string extraConfig.enable-envoy-config=true
Deploy Ingress Controller
kubectl apply -f ingress/nginx/ingress.yml
kubectl apply -f ingress/nginx/ingress-daemonset.yml
kubectl apply -f ingress/traefik/ingress.yml
kubectl apply -f ingress/kong/ingress.yml
Deploy demo application for tests
kubectl apply -f toolkit/demo-apps/whois/whois.yml
kubectl apply -f toolkit/demo-apps/chip/chip.yml
curl 0.0.0.0:80/whois/google.com -H "Host: whois.local.cluster" -i
HTTP/1.1 200 OK
Date: Wed, 24 Mar 2021 20:18:41 GMT
Content-Type: application/json
Content-Length: 1706
Connection: keep-alive
{"domainName":"google.com","registryDomainId":"2138514_DOMAIN_COM-VRSN","registrarWhoisServer":"whois.markmonitor.com","registrarUrl":"http://www.markmonitor.com"}
curl 0.0.0.0:80/system -H "Host: chip.local.cluster" -i
HTTP/1.1 200 OK
Date: Wed, 24 Mar 2021 20:24:09 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 102
Connection: keep-alive
{"hostname":"chip-b65c4c85f-jpj98","cpus":2,"os":"Alpine Linux v3.12","hypervisor":"bhyve","memory":0}