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}