Incompatible changes coming: Services v2, Namespaces, new API objects

237 views
Skip to first unread message

Tim Hockin

unread,
Oct 13, 2014, 8:30:15 PM10/13/14
to kubernete...@googlegroups.com
Hi all,

A week and a half ago, I warned you all of a pending incompatible
change (https://groups.google.com/forum/#!topic/kubernetes-announce/oO7Bs_c16lI)
in Kubernetes. This message is a revision.

There are a number of incompatible changes that have been brewing in
Kubernetes, and we've decided that it's better to rip the band-aid off
all at once and commit them all together. We intend to get all of the
below changes committed in one day, hopefully this week. I will send
an announcement here before we start the process of committing them
and again when we are done.

Any pods, replication controllers, or services that you have running
in your clusters will have to be destroyed and re-created. We
apologize for any inconvenience, and we appreciate your understanding
as we try to keep things moving forward in Kubernetes.

Summary of changes:

1) IP-per-service: https://github.com/GoogleCloudPlatform/kubernetes/pull/1402

This change will almost completely eliminate the problem of
coordinating shared ports in Kubernetes. Every Service will now get
its own virtual IP address, which means it can use any port you want.
For details about how this works, please see the above-linked
pull-request. Because of this, the environment variable
"SERVICE_HOST" will no longer work. A few weeks ago we introduced
per-Service variables to replace SERVICE_HOST. If you have a service
named "foo", you can use FOO_SERVICE_HOST, which will contain the
right IP after this change, or you can use the Docker-links style
variables, which will continue to be supported.


2) Namespaces: https://github.com/GoogleCloudPlatform/kubernetes/pull/1564

This change represents one of the final pieces of the namespace
feature, which provides the mechanism to subdivide your Kubernetes
cluster into a set of logically scoped units. Each namespace manages
its own set of pods, replication controllers, and services. If you're
not ready to use namespaces yet, don't worry - all of the content you
create in your cluster will just reside in the "default" namespace.


3) BoundPods: https://github.com/GoogleCloudPlatform/kubernetes/pull/1662

This change is part of the introduction of the v1beta3 API - a fairly
substantial set of changes to re-organize how we describe the
Kubernetes system. If you use the API directly, you might want to
read up on the changes in this API version - there are quite a few.


We're pretty excited to be getting these changes in - we really
believe they make Kubernetes a better system to use, and we think you
will agree. If something doesn't work for you, or isn't clear, please
file an issue (https://github.com/GoogleCloudPlatform/kubernetes/issues/new),
find us on IRC, or drop me a note directly, and we will sort it out.


Tim

Tim Hockin

unread,
Oct 16, 2014, 11:34:16 AM10/16/14
to kubernete...@googlegroups.com
Hello everyone,

The incompatible changes will start being committed around 10:00am,
California time, today. I will send another notice when they are
done.

Thanks for your patience!

Tim

Tim Hockin

unread,
Oct 16, 2014, 8:08:54 PM10/16/14
to kubernete...@googlegroups.com
Hi everyone,

Breakage day is done! It was a bit rocky, but we merged everything
successfully, we think. If you have a running cluster and you want to
pull from head you MUST tear down and recreate the cluster.

The last commit hash before breaking changes was
63e19069026895ef562149d99594f3091663e5b8 at Wed Oct 15 22:49:18 2014
-0700. If you don't want to take breaking changes, do not pull any
hashes after this.

The believed-good commit hash is
b01126322b826a15db06f6eeefeeb56dc06db7af at Thu Oct 16 17:02:16 2014
-0700.

If you are having problems that you think might be related to this,
please let me know.

Thanks again!

Tim
Reply all
Reply to author
Forward
0 new messages