News for hackers. Stuff that matters.
Re:Docker for Mac with Kubernetes by drdaeman on Saturday January 06, 2018 @09:54AM (#16085491)
> Kubernetes on the other hand is trivial with GKE

How do I install GKE on my servers? ;)

> By hand it’s not trivial to get a secure install.

The default install (basically, adding a repo and apt-get install docker-ce on Debian and derivatives - trivial to automate with Ansible) is reasonably secure if you view Docker as a tool for packaging and task scheduling with some nice extras and don't buy the marketed isolation properties. It only listens for commands on a local socket, and permissions are sane. I haven't looked into Swarm mode protocol traffic, though but I don't think it's tweakable anyway.

> The myth that kubernetes is complicated is largely perpetuated by the same kind of people who say React is complicated: the people who’ve not tried it.

I've tried K8s. I've set up a test cluster, it worked, I wrote some YAML, it worked, all good. So I've worsened the conditions (explicitly going into "I want things to break" territory) and made it fail. I've researched how hard it is to diagnose the problem and fix it - it happened to be complicated. At least, for me. Just felt that "if something goes wrong here, I'll have bad time trying to fix it". Surely, this is not the case on GKE where you don't run and don't manage the cluster.

I had somewhat similar experience with Docker and Docker Swarm mode, and it was significantly easier to dive into the code, find out the relevant parts and see what's going on.

> difficult with Swarm, like TLS termination

YMMV, but I just add some labels to the service and Traefik does the rest. ;)

(But, yeah, Traefik with Swarm requires some reasonable but not exactly obvious networking logic. May take one deployment of "why I'm getting 504s?!" to figure it out. And Traefik needs access to manager nodes to work with built-in Swarm service discovery.)

Re:Docker for Mac with Kubernetes by pacala on Saturday January 06, 2018 @12:01PM (#16086100)
> How do I install GKE on my servers? ;)

Great question! All major Cloud providers offer managed Kubernetes services:

https://cloud.google.com/kubernetes-engine

https://azure.microsoft.com/en-us/services/container-service

https://aws.amazon.com/eks

https://www.ibm.com/cloud/container-service

The choice is Cloud + Kubernetes vs. roll everything on your own hardware.

Running your own hardware is a major IT effort. Kubernetes is just a part of that effort. Then you have take care about planning, provisioning, logging, monitoring, alerting, auditing, networking, storage, oncall.

You either run Cloud + Kubernetes and get rolling in 15 minutes, or you hire IT headcount.

Re:Docker for Mac with Kubernetes by bboreham on Saturday January 06, 2018 @12:12PM (#16086186)
EKS isn't generally available
Re:Docker for Mac with Kubernetes by bonesss on Monday January 08, 2018 @08:23AM (#16096506)
> Running your own hardware is a major IT effort. Kubernetes is just a part of that effort.

For Enterprise nerds VMWare has also just launched a Kubernetes service, so the #1 Enterprise VM supplier just added k8s on-prem for everyone who is in a hybrid cloud situation.

Re:Docker for Mac with Kubernetes by ownagefool on Saturday January 06, 2018 @05:16PM (#16087774)
Re:Docker for Mac with Kubernetes by kuschku on Saturday January 06, 2018 @12:28PM (#16086313)
> You either run Cloud + Kubernetes and get rolling in 15 minutes, or you hire IT headcount.

You can always rent dedicated hardware – much cheaper than renting similar amounts of virtual servers, and the same administration and operations costs. It’s often even significantly cheaper than what GCE offers – but of course, setting up Kubernetes is more complicated.

Re:Docker for Mac with Kubernetes by pacala on Saturday January 06, 2018 @03:25PM (#16087258)
Exactly. Hardware rental is one way to tackle provisioning. You're still left with all the other tasks required to bootstrap your own datacenter. As you build up the roll-your-own solution, you end up in the same place: hire IT headcount.

If you are a small startup looking to validate market fit, your best bet is Cloud + Kubernetes. If you are an established business with millions of daily customers and serious IT headcount budget, you may look into roll-your-own. The best orchestrator at that scale is, again, Kubernetes.

Re:Docker for Mac with Kubernetes by kuschku on Saturday January 06, 2018 @05:02PM (#16087725)
> Exactly. Hardware rental is one way to tackle provisioning. You're still left with all the other tasks required to bootstrap your own datacenter. As you build up the roll-your-own solution, you end up in the same place: hire IT headcount.

For a startup, building a datacenter isn’t required in the beginning.

I meant, literally renting existing hardware, in an existing datacenter. This is just a single step from renting VMs at AWS or GCE, but already improves costs significantly.

Re:Docker for Mac with Kubernetes by breeny592 on Sunday January 07, 2018 @05:17AM (#16090211)
I think pacala's point still stands - if you rent hardware, there is still a larger effort involved around running scalable services (DR, auto-scaling/load balancing, deployments etc). If you rent hardware, you likely will need a larger dedicated % of resources dedicated to maintaining that, over OOTB service providers.

Edit: got user names wrong

Re:Docker for Mac with Kubernetes by xchaotic on Wednesday January 10, 2018 @04:57AM (#16113743)
you still have to go from bare metal in someone else's DC to having you software running on top of it, who's going to do all that config work? You're spending resources either way.
Re:Docker for Mac with Kubernetes by kuschku on Wednesday January 10, 2018 @05:23AM (#16113873)
As I said before, thanks to container linux, that's 3 lines in a json config.

I've deployed a handful of servers automatically myself this way, and I'm still a student.

Saving about an order of magnitude in terms of costs, gaining flexibility, and the only additional work is so low that it costs a compsci student half an hour once (aka ~10€ in wages) — there's no reason not to do it.

Re:Docker for Mac with Kubernetes by sz4kerto on Saturday January 06, 2018 @04:20PM (#16087521)
That's not true in a whole lot of industries. Many (!) small shops simply can't choose the cloud because of various reasons (regulations, for example).
Re:Docker for Mac with Kubernetes by linkmotif on Saturday January 06, 2018 @10:10AM (#16085562)
Thanks for the reply.

I agree with what you say. I'm not tying to say people should all jump to k8s. Having options on the market is great.

But I was trying to refute the notion that Kubernetes has no advantages unless you're running a huge cluster. My main points where:

* It works great with 1 node.

* It comes with many features that Swarm does not have that are useful even at 1 node (PersistentVolumes, StatefulSets are biggest for me, though there are _many_ more I wouldn't want to go without anymore).

* Docker is not trivial to set up, either.

> How do I install GKE on my servers? ;)

Yes, of course. I was just saying there's a solid option to start exploring quickly.

> It only listens for commands on a local socket.

This is kind of a non-starter, isn't it? Of course it's easy to apt-get install docker, but then you want to control it remotely, right? Once you realize how nice it is to control Docker remotely, it's hard to imagine life before.

Re:Docker for Mac with Kubernetes by sandGorgon on Saturday January 06, 2018 @11:58AM (#16086080)
Actually if you are using StatefulSets and PV, then kubernetes is a better fit for you.

However, Swarm is undeniably simpler to work with unless you have very specific requirements that only K8S provides. The yml file is incredibly simpler.

Docker Swarm is the Kotlin to Kubernetes' Java. It's a much pleasanter and much less intimidating way to build production systems that scale pretty well.

Kubernetes needs you to have load balancers setup which can talk K8S ingress. Bare metal setup for k8s is a huge effort (and I have stuck long enough on #sig-metal to know) as compared to Swarm.

You should try out Swarm - you might choose not to use it, but you will enjoy the experience.

Re:Docker for Mac with Kubernetes by raarts on Saturday January 06, 2018 @04:05PM (#16087452)
Completely agree. Tried them both and found Docker Swarm to be much simpler to setup and maintain.
Re:Docker for Mac with Kubernetes by dominotw on Saturday January 06, 2018 @12:26PM (#16086306)
> Docker is not trivial to set up, either.

Do you have a concrete example of what you ran into? What do you mean by "secure install"?

on osx its just a matter on installing docker4mac and other linux distributions has pre-made packages. I am a linux noob and I was able to setup a 20 machine cluster with swarm trivially on centos7.

I was acutally surprised that I was able to do that so trivially, given I have minimal linux admin experience if any.

Re:Docker for Mac with Kubernetes by linkmotif on Saturday January 06, 2018 @01:20PM (#16086636)
I’m referring to all the stuff Docker machine does beyond apt-get install docker. It sets up TLS certs and sockets do you can control the docker daemon remotely. When docker machine works it’s great, but when it doesn’t it’s frustrating.
Re:Docker for Mac with Kubernetes by dominotw on Saturday January 06, 2018 @02:24PM (#16086958)
Its built into docker swarm, afaik. You don't need to do anything special setup for TLS.

https://docs.docker.com/engine/swarm/how-swarm-mode-works/pk...

Re:Docker for Mac with Kubernetes by drdaeman on Saturday January 06, 2018 @12:11PM (#16086178)
> Kubernetes has no advantages unless you're running a huge cluster.

You're absolutely correct. Kubernetes has its advantages, even in a single-node setup. What many others are pointing out is that it also has significant disadvantages, too.

> but then you want to control it remotely, right?

By the way, I do talk to Docker (Swarm mode or standalone) deployments remotely, forwarding the socket via SSH.

    ssh -nNT -L /tmp/example.docker.sock:/run/docker.sock example.org
    docker -H unix:///tmp/example.docker.sock info
(Needs user to have access to the socket, of course. If sudo with password-requirements is desirable, `ssh + sudo socat` is a viable alternative.)

But, really, there is Ansible for this. Declare `docker_service` and get it deployed (or updated) as a part of the playbook. And ELK (with logging.driver=gelf for the containers or application-level) for logging.

(BTW, what's nice about K8s is that IIRC it allows to exec into pods with just `kubectl exec`. With Swarm you need some script to discover the the right node and container ID, SSH into it and run `docker exec` there - no remote access.)

Re:Docker for Mac with Kubernetes by perfmode on Saturday January 06, 2018 @10:15AM (#16085583)
I appreciate where you’re coming from, but you can’t bring GKE into a conversation about the challenges of Kubernetes ops. GKE does everything for you.
Re:Docker for Mac with Kubernetes by linkmotif on Saturday January 06, 2018 @10:59AM (#16085770)
I guess you are correct. What about Docker Machine vs Kops, then?