Merge pull request #2052 from rtnpro/k8s-1.8-as-min-supported-version
Update K8s minimum version supported by Rook from 1.7 to 1.8
This commit is contained in:
10 files changed
+10
-59
No files matched your search
@@ -11,7 +11,7 @@ from other pods running in your cluster.
|
||||
|
||||
## Minimum Version
|
||||
|
||||
Kubernetes **v1.7** or higher is supported by Rook.
|
||||
Kubernetes **v1.8** or higher is supported by Rook.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
@@ -44,14 +44,6 @@ kubectl -n rook-ceph-system get pod
|
||||
|
||||
You can also deploy the operator with the [Rook Helm Chart](helm-operator.md).
|
||||
|
||||
---
|
||||
### **Restart Kubelet**
|
||||
**(K8S 1.7.x only)**
|
||||
|
||||
For versions of Kubernetes prior to 1.8, the Kubelet process on all nodes will require a restart after the Rook operator and Rook agents have been deployed. As part of their initial setup, the Rook agents deploy and configure a Flexvolume plugin in order to integrate with Kubernetes' volume controller framework. In Kubernetes v1.8+, the [dynamic Flexvolume plugin discovery](https://github.com/kubernetes/community/blob/master/contributors/devel/flexvolume.md#dynamic-plugin-discovery) will find and initialize our plugin, but in older versions of Kubernetes a manual restart of the Kubelet will be required.
|
||||
|
||||
---
|
||||
|
||||
## Create a Rook Cluster
|
||||
|
||||
Now that the Rook operator, agent, and discover pods are running, we can create the Rook cluster. For the cluster to survive reboots,
|
||||
|
||||
@@ -14,7 +14,7 @@ This chart bootstraps a [rook-ceph-operator](https://github.com/rook/rook) deplo
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Kubernetes 1.7+
|
||||
- Kubernetes 1.8+
|
||||
|
||||
### RBAC
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ Rook can be installed on any existing Kubernetes clusters as long as it meets th
|
||||
|
||||
## Minimum Version
|
||||
|
||||
Kubernetes v1.7 or higher is supported by Rook.
|
||||
Kubernetes v1.8 or higher is supported by Rook.
|
||||
|
||||
## Privileges and RBAC
|
||||
|
||||
|
||||
@@ -409,14 +409,6 @@ kubectl -n rook get pod -l app=rook-ceph-mds -o jsonpath='{range .items[*]}{.met
|
||||
## Completion
|
||||
At this point, your Rook cluster should be fully upgraded to running version `rook/ceph:v0.8.0` and the cluster should be healthy according to the steps in the [health verification section](#health-verification).
|
||||
|
||||
## Upgrading Kubernetes
|
||||
Rook cluster installations on Kubernetes prior to version 1.7.x, use [ThirdPartyResource](https://kubernetes.io/docs/tasks/access-kubernetes-api/extend-api-third-party-resource/) that have been deprecated as of 1.7 and removed in 1.8. If upgrading your Kubernetes cluster Rook TPRs have to be migrated to CustomResourceDefinition (CRD) following [Kubernetes documentation](https://kubernetes.io/docs/tasks/access-kubernetes-api/migrate-third-party-resource/). Rook TPRs that require migration during upgrade are:
|
||||
- Cluster
|
||||
- Pool
|
||||
- ObjectStore
|
||||
- Filesystem
|
||||
- VolumeAttachment
|
||||
|
||||
## Appendix: Upgrading a Build from Master
|
||||
|
||||
As previously mentioned, it is not recommended to run builds from master since they can change and be otherwise incompatible with the official releases.
|
||||
|
||||
Vendored
-1
@@ -67,7 +67,6 @@ pipeline {
|
||||
stash name: 'repo-amd64',includes: 'ceph-amd64.tar,cockroachdb-amd64.tar,nfs-amd64.tar,build/common.sh,_output/tests/linux_amd64/,_output/charts/,tests/scripts/'
|
||||
script{
|
||||
def data = [
|
||||
"aws_1.7.x": "v1.7.11",
|
||||
"aws_1.8.x": "v1.8.5",
|
||||
"gce_1.9.x": "v1.9.9",
|
||||
"aws_1.10.x": "v1.10.5",
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
- Ceph OSDs will be automatically updated by the operator when there is a change to the operator version or when the OSD configuration changes. See the [OSD upgrade notes](Documentation/upgrade-patch.md#object-storage-daemons-osds).
|
||||
- Rook Ceph block storage provisioner can now correctly create erasure coded block images. See [Advanced Example: Erasure Coded Block Storage](Documentation/block.md#advanced-example-erasure-coded-block-storage) for an example usage.
|
||||
- [Network File System (NFS)](https://github.com/nfs-ganesha/nfs-ganesha/wiki) is now supported by Rook with a new operator to deploy and manage this widely used server. NFS servers can be automatically deployed by creating an instance of the new `nfsservers.nfs.rook.io` custom resource. See the [NFS server user guide](Documentation/nfs.md) to get started with NFS.
|
||||
- The minimum version of Kubernetes supported by Rook changed from `1.7` to `1.8`.
|
||||
|
||||
## Breaking Changes
|
||||
|
||||
- The Rook container images are no longer published to quay.io, they are published only to Docker Hub. All manifests have referenced Docker Hub for multiple releases now, so we do not expect any directly affected users from this change.
|
||||
- Rook no longer supports kubernetes `1.7`. Users running Kubernetes `1.7` on their clusters are recommended to upgrade to Kubernetes `1.8` or higher. If you are using `kubeadm`, you can follow this [guide](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-8/) to from Kubernetes `1.7` to `1.8`. If you are using `kops` or `kubespray` for managing your Kubernetes cluster, just follow the respective projects' `upgrade` guide.
|
||||
|
||||
## Known Issues
|
||||
|
||||
|
||||
+2
-2
@@ -19,7 +19,7 @@ You can choose any Kubernetes flavor of your choice. The test framework only de
|
||||
The framework also provides scripts to install Kubernetes. There are two scripts to start the cluster:
|
||||
1. **Minikube** (recommended for MacOS): Run [minikube.sh](/tests/scripts/minikube.sh) to setup a single-node Minikube Kubernetes.
|
||||
1. Minikube v0.21.0 and higher is supported. Older minikube versions do not have cephfs or rbd tools installed.
|
||||
1. If using Kubernetes v1.7.3 or higher, then Minikube v0.22.2 or higher is required.
|
||||
1. If using Kubernetes v1.8 or higher, then Minikube v0.23.0 or higher is required.
|
||||
1. **Kubeadm** (recommended for Ubuntu): run [kubeadm.sh](/tests/scripts/kubeadm.sh) to setup a single-node K8s cluster using kubeadm
|
||||
|
||||
#### Minikube (recommended for MacOS)
|
||||
@@ -97,7 +97,7 @@ In addition to standard go tests parameters, the following custom parameters are
|
||||
| Parameter | Description | Possible values | Default |
|
||||
| ----------------- | -------------------------------------------- | ---------------- | ----------------- |
|
||||
| rook_platform | platform Rook needs to be installed on | kubernetes | kubernetes |
|
||||
| k8s_version | version of Kubernetes to be installed | v1.7+ | v1.8.5 |
|
||||
| k8s_version | version of Kubernetes to be installed | v1.8+ | v1.8.5 |
|
||||
| rook_image | Rook image name to be installed | valid image name | rook/ceph |
|
||||
| toolbox_image | toolbox image name to be installed | valid image name | rook/ceph-toolbox |
|
||||
| skip_install_rook | skips installing Rook (if already installed) | true or false | false |
|
||||
|
||||
@@ -9,26 +9,6 @@ KUBE_INSTALL_VERSION="${KUBE_VERSION/v/$null_str}"-00
|
||||
# Disabling swap when installing k8s 1.8.x via kubeadm
|
||||
sudo swapoff -a
|
||||
|
||||
# init flexvolume
|
||||
if [[ $KUBE_VERSION == v1.7* ]] ;
|
||||
then
|
||||
sudo mkdir -p /usr/libexec/kubernetes/kubelet-plugins/volume/exec/rook.io~rook
|
||||
cat << EOF | sudo tee -a /usr/libexec/kubernetes/kubelet-plugins/volume/exec/rook.io~rook/rook
|
||||
#!/bin/bash
|
||||
echo -ne '{"status": "Success", "capabilities": {"attach": false}}' >&1
|
||||
exit 0
|
||||
EOF
|
||||
sudo chmod +x /usr/libexec/kubernetes/kubelet-plugins/volume/exec/rook.io~rook/rook
|
||||
|
||||
sudo mkdir -p /usr/libexec/kubernetes/kubelet-plugins/volume/exec/ceph.rook.io~rook
|
||||
cat << EOF | sudo tee -a /usr/libexec/kubernetes/kubelet-plugins/volume/exec/ceph.rook.io~rook/rook
|
||||
#!/bin/bash
|
||||
echo -ne '{"status": "Success", "capabilities": {"attach": false}}' >&1
|
||||
exit 0
|
||||
EOF
|
||||
sudo chmod +x /usr/libexec/kubernetes/kubelet-plugins/volume/exec/ceph.rook.io~rook/rook
|
||||
fi
|
||||
|
||||
wait_for_dpkg_unlock() {
|
||||
#wait for dpkg lock to disappear.
|
||||
retry=0
|
||||
|
||||
@@ -11,7 +11,6 @@ usage(){
|
||||
echo "usage:" >&2
|
||||
echo " $0 up " >&2
|
||||
echo " $0 install master" >&2
|
||||
echo " $0 install node --token <token> <master-ip>:<master-port> (for k8s 1.7 and older)" >&2
|
||||
echo " $0 install node --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>" >&2
|
||||
echo " $0 wait <number of nodes>" >&2
|
||||
echo " $0 clean" >&2
|
||||
|
||||
@@ -121,22 +121,9 @@ MEMORY=${MEMORY:-"3000"}
|
||||
case "${1:-}" in
|
||||
up)
|
||||
# Use kubeadm bootstrapper for 1.8+ since localkube was deprecated in 1.8
|
||||
if [[ $KUBE_VERSION == v1.7* ]] ; then
|
||||
echo "starting minikube with localkube bootstrapper"
|
||||
minikube start --memory="${MEMORY}" -b localkube --kubernetes-version "${KUBE_VERSION}" --extra-config=apiserver.Authorization.Mode=RBAC
|
||||
wait_for_ssh
|
||||
enable_roles_for_RBAC
|
||||
echo "initializing flexvolume for ceph.rook.io"
|
||||
init_flexvolume ceph.rook.io
|
||||
echo "initializing flexvolume for rook.io"
|
||||
init_flexvolume rook.io
|
||||
echo "restarting minikube"
|
||||
minikube start --memory="${MEMORY}" -b localkube --kubernetes-version "${KUBE_VERSION}" --extra-config=apiserver.Authorization.Mode=RBAC
|
||||
else
|
||||
echo "starting minikube with kubeadm bootstrapper"
|
||||
minikube start --memory="${MEMORY}" -b kubeadm --kubernetes-version "${KUBE_VERSION}"
|
||||
wait_for_ssh
|
||||
fi
|
||||
echo "starting minikube with kubeadm bootstrapper"
|
||||
minikube start --memory="${MEMORY}" -b kubeadm --kubernetes-version "${KUBE_VERSION}"
|
||||
wait_for_ssh
|
||||
# create a link so the default dataDirHostPath will work for this environment
|
||||
minikube ssh "sudo mkdir -p /mnt/sda1/${PWD}; sudo mkdir -p $(dirname $PWD); sudo ln -s /mnt/sda1/${PWD} $(dirname $PWD)/"
|
||||
minikube ssh "sudo mkdir /mnt/sda1/var/lib/rook;sudo ln -s /mnt/sda1/var/lib/rook /var/lib/rook"
|
||||
|
||||
Reference in new issue
Block a user