Kubernetes Couchbase Operator - Invalid Version

I’m currently testing the feasibility of deploying Couchbase as a Kubernetes based containerized service in IBM Cloud’s Container Service and running into a problem. I’m using the guide found here http://docs.couchbase.com/prerelease/couchbase-operator/beta/installKubernetes.html . One of the early steps is deploying their operator

kubectl create -f https://packages.couchbase.com/kubernetes/0.8.0-beta2/k8s-rbac/operator.yaml

After the deployment I am seeing errors repeatedly in the kubernetes log for the operator stating that kubernetes is version 1.0 and too old although that is not the case.

time=“2018-05-11T10:46:01Z” level=error msg="Initialization failed: kubernetes version 1.0 is too old, 1.8 is minimum supported version " module=controller

I’m running the latest version available in IBM Cloud which is 10.1 and also atttempted to deploy against 1.9.7 and got the same errors.

kubectl version

Client Version: version.Info{Major:“1”, Minor:“10”, GitVersion:“v1.10.1”, GitCommit:“d4ab47518836c750f9949b9e0d387f20fb92260b”, GitTreeState:“clean”, BuildDate:“2018-04-13T22:27:55Z”, GoVersion:“go1.9.5”, Compiler:“gc”, Platform:“darwin/amd64”}
Server Version: version.Info{Major:“1”, Minor:“10+”, GitVersion:“v1.10.1-2+7d2976e4bcbeb9”, GitCommit:“7d2976e4bcbeb90c4164af86da204901f77adb16”, GitTreeState:“clean”, BuildDate:“2018-04-24T21:49:08Z”, GoVersion:“go1.9.3”, Compiler:“gc”, Platform:“linux/amd64”}

When working with IBM Cloud support they suspected the problem to be in the Couchbase container and that they have never had a 1.0 version of Kubernetes.

I’m looking for some advice on troubleshooting.

I have same error on GCP provider. There is also one missing step from kubernetes operator doc, the user creating clusterrole with rbac enabled should have appropriate role as cluster-admin.

@anil are you aware of anything in the container that is comparing Kubernetes versions, potentially inaccurately? Have you seen similar types of errors in other deployments?

In 0.8 beta refresh, the operator compares the kubernetes version to a list of supported versions. The operator will only work with kubernetes 1.8 and up. I suspect the issue is that the “server version” the kubectl shows is “10+”. Perhaps we are not parsing that correctly and just expecting nicely formatted string numbers, i.e without the “+”. @mikew

I suspected this could have been the case so I spun up a 1.9.7 Kubernetes cluster and tested it as well. I received the same error with 1.9.7 as I did with 1.10.1.

Thanks,
Kenny

Yeah, after pinging @tommie it looks like it is a slightly different parsing issue. We check the gitVersion and it seems the regex we use might not handle the parsing correctly. We are looking into it.

Thanks @k3nnyP @khtony for reporting this issue. I have created JIRA issue K8S-315 to track as well get it fixed.

Anil Kumar

Thanks for creating the JIRA issue. Since I didn’t record the findings from my 1.9.7 cluster I wanted to reproduce and share here for completeness. It appears v1.9.7-2+ in this case is what is suspected of causing the problem per the defect notes.

kubectl version
Client Version: version.Info{Major:“1”, Minor:“10”, GitVersion:“v1.10.1”, GitCommit:“d4ab47518836c750f9949b9e0d387f20fb92260b”, GitTreeState:“clean”, BuildDate:“2018-04-13T22:27:55Z”, GoVersion:“go1.9.5”, Compiler:“gc”, Platform:“darwin/amd64”}
Server Version: version.Info{Major:“1”, Minor:“9+”, GitVersion:“v1.9.7-2+231cc32d0a1119”, GitCommit:“231cc32d0a111940d45936b3206548c610869df2”, GitTreeState:“clean”, BuildDate:“2018-04-25T08:09:04Z”, GoVersion:“go1.9.3”, Compiler:“gc”, Platform:“linux/amd64”}

Reported error is the same as with 10+

time=“2018-05-14T18:56:06Z” level=error msg="Initialization failed: kubernetes version 1.0 is too old, 1.8 is minimum supported version " module=controller

I’ve been following the Jira and it appears to be marked as fixed in 0.8.1 with a dependency of updating the docs to the new location for pulling the operator. While we await the documents getting updated could someone provide the url for the new operator?

I attempted this.

kubectl create -f https://packages.couchbase.com/kubernetes/0.8.1-beta2/k8s-rbac/operator.yaml
error: unable to read URL “https://packages.couchbase.com/kubernetes/0.8.1-beta2/k8s-rbac/operator.yaml”, server reported 404 Not Found, status code=404

Hi @k3nnyP, I understand you’re eagerly waiting for fix which we plan to make it available by end of week 05/18. We will have docs and new YAML files ready by then.

Thanks!

Anil Kumar

Thanks. I appreciate the response.