HN user

fen4o

140 karma
Posts0
Comments18
View on HN
No posts found.

We were 5 people (3 different reservations) traveling from EU to Japan for a ski vacation. Our first flight got canceled due to technical issues with the airplane and we could not get another flight to reach the transfer from Istanbul to Tokyo. We had to get a new flight that delayed our arrival date by 1 day. The worst thing is that they didn't rescheduled our domestic flight from Tokyo to Sapporo.

We went to the check-in for our flight to Sapporo and the staff told us that our flight was actually yesterday... Not wanting to waste another minute with Turkish Airlines support I opened my laptop and got us a new flight and luckily there was a flight in 2 hours.

As our flight was flying off from EU we were covered by the EU rights and all of us got full compensation for the delay - 600 Euro (420 at the end as we used 3rd party to handle it).

Now I'm trying to get full reimbursement for the flight from Tokyo to Sapporo as I payed for it out of pocket. They are arguing that each of us should have an individual invoice and we should have not bought group tickets. For this reason I would highly recommend to use 3rd party (they take between 25-30% commission) just not to deal with airline BS.

I understand their rationale. We manage thousand Kubernetes clusters and end-users can find lots and lots of creative way to shoot themselves in the foot:

- I can store anything in a secret? Let's have thousands of cat images. Etcd then stops working because we have over 2GB of funny cats in the key store.

- I can run a root Pod? Lets mount the docker socket and start building images with it. Oh and by the way, I never clean those up and my Node simply fills up. Also I add some additional docker networks that break Pod to Pod networks.

- Istio is nice - why we don't add automatic injection for Pods in all namespaces? Including kube-system? And then they brick kube-proxy and the cluster stops working.

- I can use validating webhooks for better security? Lets watch on all resources. To keep it more secure lets set the failure policy of the webhook to Fail, so we never admit any modification without the apiserver to make a call to out webhook. Whats that? My single replica webhook has was evicted from the Pod (we didn't add any resource requests and limits) and now it cannot even be created or scheduled because kube-controller-manager and kube-scheduler cannot update their lease and they lost leadership and now are idling, effectively bricking the entire cluster.

Google would reduce the pain points with this change, however they would still face countless other issues with Kubernetes.

From my experience, running etcd in cluster mode simply creates too many problems. It can scale vertically very well and if you run etcd (and other Kubernetes control plane components) on top of Kubernetes you can get away with running only a single instance.

Exactly. The frameworks that the article describes know how to run say Cassandra or Spark, but you can do the same thing in Kubernetes using TPRs or CRDs with operators:

[0]https://github.com/coreos/prometheus-operator [1]https://github.com/coreos/etcd-operator [2]https://github.com/huawei-cloudfederation/redis-operator [3]https://github.com/CrunchyData/postgres-operator [4]https://github.com/krallistic/kafka-operator [5]https://github.com/pegerto/cassandra-operator