2.6 KiB
Versions installed
- Kubernetes 1.18.0
- Docker Engine 19.03.8
- Docker Compose 1.25.4
.exercise[
- Check all installed versions:
kubectl version docker version docker-compose -v
]
class: extra-details
Kubernetes and Docker compatibility
-
Kubernetes 1.17 validates Docker Engine version up to 19.03
however ...
-
Kubernetes 1.15 validates Docker Engine versions up to 18.09
(the latest version when Kubernetes 1.14 was released) -
Kubernetes 1.13 only validates Docker Engine versions up to 18.06
-
Is it a problem if I use Kubernetes with a "too recent" Docker Engine?
--
class: extra-details
-
No!
-
"Validates" = continuous integration builds with very extensive (and expensive) testing
-
The Docker API is versioned, and offers strong backward-compatibility
(if a client uses e.g. API v1.25, the Docker Engine will keep behaving the same way)
Kubernetes versioning and cadence
-
Kubernetes versions are expressed using semantic versioning
(a Kubernetes version is expressed as MAJOR.MINOR.PATCH)
-
There is a new patch release whenever needed
(generally, there is about 2 to 4 weeks between patch releases, except when a critical bug or vulnerability is found: in that case, a patch release will follow as fast as possible)
-
There is a new minor release approximately every 3 months
-
At any given time, 3 minor releases are maintained
(in other words, a given minor release is maintained about 9 months)
Kubernetes version compatibility
Should my version of kubectl match exactly my cluster version?
-
kubectlcan be up to one minor version older or newer than the cluster(if cluster version is 1.15.X,
kubectlcan be 1.14.Y, 1.15.Y, or 1.16.Y) -
Things might work with larger version differences
(but they will probably fail randomly, so be careful)
-
This is an example of an error indicating version compability issues:
error: SchemaError(io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus): invalid object doesn't have additional properties -
Check the documentation for the whole story about compatibility