Using Traefik as an ingress controller for minikube - minikube

I am looking at traefik for an ingress controller for my minikube cluster. I have tried to follow the instructions provide in Traefik but my service External-IP is stuck in state indefinitely. Can anyone recommend a command that might explain why my service is failing to get an external-ip. kubectl describe svc traefik fails to provide any information. I have the latest minikube installed on MacOS with NO addons installed.
I also have the latest version of Helm installed. And executed the command
helm install --name ingress --namespace kube-system --set dashboard.enabled=true stable/traefik
I have successfully install nginx as an ingress controller.

Related

Kubernetes Ingress nginx installation

I am trying to install ingress-nginx in minikube on windows. I remember when I did this earlier by following below this link, it had a mandatory step to install deployables -
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml
But I don't see this anymore valid. If you see installation guide it does not have any step before provider specific commands.
So can someone help to clarify if am missing anything? how would ingress-nginx-controller get created without executing above command which itself is missing in the page?
Minikube already has nginx ingress packaged as an add-on part of Minikube installation. You just need to enable it via
minikube addons enable ingress

How to change Istio-ingressgateway type from "LoadBalancer" to "ClusterIP"

I am using Azure Kubernetes. I installed Istio 1.6.1. It installed the Istio-ingressgateway with LoadBalancer. I don't want to use Istio ingressgateway because I want to kong ingress.
I tried to run below command to change istio-ingress services from LoadBalancer to ClusterIP but getting errors.
$ kubectl patch svc istio-ingressgateway -p '{"spec": {"ports": "type": "ClusterIP"}}' -n istio-system
Error from server (BadRequest): invalid character ':' after object key:value pair
Not sure if I can make the changes and delete and re-create istio-ingress service?
The better option would be to reinstall istio without ingress controller. Do not install default profile in istio as it will install ingress controller along with other component. Check the various settings as mentioned in the installation page of istio and disable ingress controller.
Also check the documentation of using istio and kong together on k8s page and see what needs to be done on kong installation in order for enble communication between kong and other services.

How can I use ingress-nginx via Helm on custom k8s install without LoadBalancer support?

I installed k8s on Ubuntu 18.04. This instance is on a no-frills host that has no concept of load balancers.
I installed the nginx ingress via: helm install stable/nginx-ingress --name my-nginx
As you can see below, there is a service line that shows a LoadBalancer type service pending.
$ kubectl get svc
ingress-nginx-nginx-ingress-controller LoadBalancer 10.110.139.78 <pending> 80:31310/TCP,443:31820/TCP
ingress-nginx-nginx-ingress-default-backend ClusterIP 10.105.146.132 <none> 80/TCP
Is there a way to setup the nginx-ingress w/o a LoadBalancer service, preferably with Helm? If not, a workaround without Helm would be fine too.
https://github.com/helm/charts/tree/master/stable/nginx-ingress
According to official docs of chart you can configure service type through controller.service.type property and setting it to NodePort instead of LoadBalancer

Use Gitlab-installed Helm from CLI. Could not find tiller

I've created a kubernetes cluster on AWS using Kops, and I've correctly configured the cluster on Gitlab.
I've installed Helm Tiller and Ingress from Gitlab's panel, but I now wish to uninstall the Ingress chart.
I'm not sure how to uninstall the ingress chart. What I'm tring now is configuring my Helm CLI to delete the ingress release, but I'm not getting the Helm CLI correctly configured. The Tiller stuff is being deployed at the gitlab-managed-apps, so I'm trying the following command:
$ helm init --tiller-namespace gitlab-managed-apps --service-account tiller --upgrade
HELM_HOME has been configured at C:\Users\danie\.helm.
Tiller (the Helm server-side component) has been upgraded to the current version.
Happy Helming!
But then when I'm trying to issue the helm ls command I'm getting the following error:
$ helm ls
Error: could not find tiller
But the service account exists on the namespace:
$ kubectl get serviceAccounts -n gitlab-managed-apps
NAME SECRETS AGE
default 1 23h
ingress-nginx-ingress 1 23h
tiller 1 23h
Any ideas how to get the CLI correctly configured?
you have installed tiller to a namespace that is not the default namespace.
As per default the Helm CLI will assume tiller is installed in default and that this is the namespace you want to "get in touch with"
this can be fixed by using the tiller-namespace flag as for your example that'd be
helm list --tiller-namespace gitlab-managed-apps
Try using Helm version 3 onward. Helm versions 1 and 2 are actually composed of two pieces – the Helm CLI, and Tiller, the Helm server-side component. It is important to note that Helm 3 removes the Tiller component, and thus is more secure

Kubernetes - error: no resource "deployment" has been defined

I've install Kubernetes 1.3.5 on Ubuntu 14.04 server as a single-node-cluster.
I'm able to deploy docker images successfully and access the running container via HTTP and see them in docker ps.
When I try to follow the Kubernetes-Quick-Start after running the command kubectl run my-nginx --image=nginx --replicas=2 --port=80 the output is
CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
my-nginx my-nginx nginx run=my-nginx 2
and it is not deployment "my-nginx" created.
Also when I run kubectl expose deployment my-nginx --target-port=80 --type=LoadBalancer I get the error:
error: no resource "deployment" has been defined
Did I miss something during the setup?
I was using an old version of Kubernetes 1.0.1.\
After update to 1.3.5 this was fixed.