Roadmap for CoreOS Integration with Red Hat OpenShift
redhat.com
redhat.com
In the next few months, you should see an OpenShift that is built upon the same upgrade system as Tectonic which allows for more incremental buy-in to OpenShift PaaS functionality and a Linux distribution that leverages Ignition and immutability to provide the minimal environment needed to run Kubernetes/containers.
My understanding is that Container Linux as is will be supported for years, but we will also be creating a new distro, RH CoreOS, that replaces the Gentoo build system with Fedora tooling. This shouldn't change much for users as they don't interact with the build system; they just consume the results of said system. I'd liken this scenario to the relationship between CentOS and RHEL, which are both maintained by Red Hat. Some details have yet to shake out; for example, I personally don't know if the resulting distro will leverage rpm-ostree, but we already have internal proof-of-concepts running OpenShift with Tectonic components on top of Container Linux.
Please voice your opinions here and now! Nothing is set in stone and we're listening for the community to weigh in on these decisions as well.
[0]: https://github.com/kubernetes-sigs/kubebuilder
[1]: https://groups.google.com/d/msg/kubernetes-dev/RgwIQ9Dii-I/Q...
https://medium.com/@cloudark/analyzing-value-of-operator-fra...
As to whether this or other similar projects will become part of Kubernetes core, my guess is probably there will be resistance to it as it will mean choosing one particular way of how Kubernetes can be extended over others. And this will be against the overall philosophy of Kubernetes that components in it are optional and pluggable[1]. On the other hand, some standardization will mostly likely evolve around the end-user experience of consuming multiple Operators in a single Kubernetes Cluster.
[1] https://kubernetes.io/docs/concepts/overview/what-is-kuberne...
[0]: https://github.com/operator-framework/operator-lifecycle-man...
https://coreos.com/blog/why-we-started-coreos
When at my new gig we suggested RH should understand the sec and ops value of CoreOS thinking, we didn’t mean take them off the market. :-)
Alex, Brandon, still want what you were building.
Both you and the press release mention that CL will be supported for a while, but it's not clear what's going to happen with Atomic. My entirely unscientific and feels-based opinion is that Atomic seems to be getting a little more traction in the Workstation/SilverBlue area at the moment. rpm-ostree is really unique tooling, and I'd hate to see it go away; the more I use it, the more I like it!
At any rate, the market share of CL is probably substantially greater than that of Atomic, but there are those of us who are rolling out k8s clusters based on Atomic. It would be nice to know sooner rather than later if we're wasting our time!
Going forward RHEL and Red Hat CoreOS are going to be the official distributions supported for running OpenShift. RHEL will be for users that need to install software on the hosts themselves manually and CoreOS will be the preferred immutable host that expects all software running at the cluster-level. Running OpenShift on Container Linux or Atomic will be like running RHEL RPMs on CentOS -- it'll pretty much work fine, but I don't think you can call up Red Hat if you get into trouble.
rpm-ostree is super cool. The engineers working on the OS are still trying to figure out how to bring everything together, but we understand how important this technology is. I know this is the hill where the Atomic engineers will die on, so if there's going to be anything from Atomic in CoreOS, it's going to be this, haha.
My message on the community side (Fedora and existing CL) is - don't panic, you have some time. And a lot of us want to support a broad array of use cases.
Since you mention rpm-ostree, one thing I'd point you to is some work we did on changing the Container Linux update operator to talk to it: https://github.com/ashcrow/container-linux-update-operator/
Fedora Atomic Host will be updated through at least the end of Fedora 28 cycle (december?). I'd like to keep it updated through Fedora 29, but we'll see what actually happens; best intentions aside, build engineers are always in short supply (your contributions can help). Red Hat Atomic Host will be supported into 2020. Centos Atomic Host tracks RHAH, so it will likely be available through the same period.
After that ... there will be some kind of migration plan to the new OS, details TBD. The real asset we have there is `rpm-ostree rebase` which makes it really easy to swap out the Atomic Host base in-place.
Oracle's RHEL clone on the other hand ship their UEK kernel which is a recent, commercially supported kernel based on (almost) latest upstream. There, the situation is at least better than with native RHEL, but I truly hope Red Hat has an answer to that with brand new Linux kernel's on RH CoreOS side. Please don't let innovation coming from the kernel die by dictating ancient RHEL kernels to majority of users. CoreOS enables innovation, please make sure it continues to do so.
By the way, there was a good summary on this point with regards to RHEL kernel considered harmful here: https://medium.com/@sargun/red-hat-enterprise-linux-consider...
Stability is superb and a lot of the niggles I had with Ubuntu just went away.
Fedora Cinnamon is damn close to perfect as a development desktop for my needs. I literally can't think of anything I'd improve outside of its multi-monitor support (it's fine with fixed monitors but plugging my 4K on displayport on the ThinkPad requires some finessing but so did windows).
We also now have access to the vast kernel engineering resources at Red Hat, so CoreOS should be able to get emergency fixes like those for Spectre and Meltdown out to customers much more quickly.
This is the opposite direction of what RedHat should have done.
I was hoping this was a acquisition to move RedHat's technology stack moving forward and instead it's one to move an innovative and solid platform backward.
Acquire, assimilate and kill off competition, just like other RedHat acquisitions before it. :(
Of course, you may disagree with what's "best". You know where to reach me (Josh Berkus) if you want to send backchannel feedback.
There is a wonderful little piece of CoreOS that is toolbox[0]. It's not available on Atomic Host. Yes I could install it easily but the point of toolbox is to avoid installing anything on the host system in the first place !
It could easily be forgotten on the side of the road while doing the CoreOS/Atomic fusion work.
So I'm asking you, can you salvage this and integrate it pretty please :) ?
I do think that the simple concept of having `toolbox` installed by default is a powerful one, and while we should revisit some of the details I'd say we should carry this one forward.
Have you built much scripting up on top of it, or is it just having it available for interactive use?
Not much scripting, just a personalised image on Docker Hub and an alias on my dev machine to push "navaati/toolbox" in the .toolboxrc on machines (but that's just a small convenience).
I am a product manager for containers/rhel/CoreOS at Red Hat, and I very much foresee a similar container for Red Hat CoreOS which will provide similar functionality for troubleshooting kernel, and user space (aka other containers) problems.
[1]: https://www.projectatomic.io/blog/2015/09/introducing-the-fe... [2]: https://developers.redhat.com/blog/2015/03/11/introducing-th...
As a Gentoo dev and long time user, I've always had a lot of sympathy for CoreOS since the beginning, so when I heard about the RedHat acquisition, I wondered about this. I have to say that I'm saddened to know that Portage will be eventually replaced. It's an excellent package manager.
This is so overloaded with buzz words it took a few attempts to make any sense of it.
I'm genuinely surprised at this. RH has put a ton of work into rpm-ostree for a long time. I guess there's a chance they'll meld it somehow with Ignition and Container Linux's Chrome OS bits when they turn it into Red Hat Container Linux or whatever it'll be called, but it's surprising to see Red Hat supporting a Linux distro not based of of RPMs and installed with kickstart/anaconda.
[0] https://twitter.com/BrandonPhilips/status/993880972583092225
It won’t be using chrome OS bits.
Edit: as of now this is what the team is thinking, still lots of room for changes as we refine down.
"Team Silverblue: Fedora as an image and container-based desktop OS"
(using ostree)
If you're running a Kubernetes cluster, while Red Hat CoreOS will support automatic inplace updates just like existing CL, I'd say it's best practice to do periodic reprovisioning to flush out extra node state. For example in RHEL 7.5 we switched from devicemapper to overlayfs, but existing instances don't get automatically transitioned. If you're using k8s reprovisioning works well as all the containers just move off and then back on.
While we did pave the way for creating alternatives for Docker in Kubernetes, CoreOS never quite got rkt to 100% stability in Kubernetes. Personally, I love a lot of things about rkt, but the project's ultimate goal was to have standards, regardless of whether or not it was AppC.
If you're still interested in rkt (it's great tech that we still use to this day to run kubelet for all Tectonic clusters), I recommended chatting to the awesome folks at Kinvolk[0]. They maintain rkt alongside CoreOS and support customers using it in production.
[0]: https://kinvolk.io
But we've chosen not to go the startup route, which means we can only really afford to work on rkt in the context of paid work. We're looking at doing more of this in the future through support contracts for Flatcar Linux[0], a fork of CoreOS' Container Linux, which includes rkt in the images, and through the contracts we get here and there from users looking for new features in, or support for, rkt directly.
But rkt, as is, remains a great container runtime. It's our preferred runtime when running outside of Kubernetes, atm. The Kubernetes integration via rktlet[1] works well but does not have 100% functional parity with the default CRI implementation. It probably needs about 3 person-months of work to get there at this point.
So yeah, it works well, but does indeed need a bit more love. If you're interested in helping out, get in touch.
The only explanation I see is that containerd is backed by Docker, a competitor of Red Hat, and that business rivalry overrode engineering common sense. Now we have to suffer yet another "war of the container runtimes", as if the original dockerd vs rkt wasn't painful enough.
Can you share your perspective on this?
* be exactly what Kubernetes needs and no more
* work with OCI-standard runtimes (runc, gvisor, runv, kata, clearcontainers, etc) in order to accomplish the above
* integrate well with Linux (use systemd for process management, bias towards tools that already exist in Linux or improve existing tools) to accomplish the above
I don’t think there’s a war. Use what you like. OpenShift specifically supports exact versions of cri-o and Docker 1.13 in order to provide the best Kubernetes experience and ensure clusters always work. There are pros and cons to all container runtimes, but it wasn’t a business decision, it was a technical decision for us.
cri-o is supported for production workloads under OpenShift 3.9 and RHEL 7.5 and we use it on our largest Online clusters. We see better memory use and predictable latency for containers than Docker and containerd for Kubernetes in general.
We don’t want anyone to feel like they can’t use other runtimes, but being Kubernetes-first has always been a goal we didn’t want to compromise on.
It makes perfect sense now. cri-o, being "daemonless", reinforces the central role of systemd in orchestrating system resources, whereas containerd, being a daemon, weakens it. I can see how Red Hat architects would not love the idea, given the importance of systemd in the RHEL/Openshift stack.
Thanks for enlightening me, if only accidentally.