Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Control plane not starting in Kubernetes 1.16 #3356

Closed
alpeb opened this issue Aug 30, 2019 · 3 comments · Fixed by #3364
Closed

Control plane not starting in Kubernetes 1.16 #3356

alpeb opened this issue Aug 30, 2019 · 3 comments · Fixed by #3364
Assignees
Labels

Comments

@alpeb
Copy link
Member

alpeb commented Aug 30, 2019

The linkerd-controller, linkerd-tap and linkerd-proxy-injector pods are not starting because they're getting blocked "waiting for caches to sync".

Tried with edge-19.8.7 and Kubernetes 1.16.0-beta.1 with Minikube and bare-metal.

@alpeb alpeb self-assigned this Aug 30, 2019
@alpeb
Copy link
Member Author

alpeb commented Aug 30, 2019

The problem is we're still establishing watchers against the apps/v1beta1 and apps/v1beta2 apis that got removed in 1.16, as this log entry from the proxy-injector shows:

round_trippers.go:438] GET https://10.96.0.1:443/apis/apps/v1beta2/deployments?limit=500&resourceVersion=0 404 Not Found in 1 milliseconds"

Re kubernetes/kubernetes#70672

@grampelberg
Copy link
Contributor

It sounds like an easy fix. Does this require a point release or do we have enough time for 2.6 to come out?

@grampelberg grampelberg added the priority/P0 Release Blocker label Aug 30, 2019
@alpeb
Copy link
Member Author

alpeb commented Aug 30, 2019

It's a quick fix indeed, I can get that in next week. My bet is 1.16 might come out one or two weeks before our 2.6. If we decide a point release is worth it, the fix will be there to be cherry-picked.

alpeb added a commit that referenced this issue Sep 3, 2019
Fixes #3356

1.16 removes some api groups that were already deprecated. From k8s blog
post (https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/):

```
- PodSecurityPolicy: will no longer be served from extensions/v1beta1 in
v1.16.
    Migrate to the policy/v1beta1 API, available since v1.10. Existing
    persisted data can be retrieved/updated via the policy/v1beta1 API.
- DaemonSet, Deployment, StatefulSet, and ReplicaSet: will no longer be
served from extensions/v1beta1, apps/v1beta1, or apps/v1beta2 in v1.16.
    Migrate to the apps/v1 API, available since v1.9. Existing persisted
    data can be retrieved/updated via the apps/v1 API.
```

Previous PRs had already made this change at the Helm templates level,
but we still needed to do it at the API calls and tests.

The integration tests ran fine for k8s 1.12 and 1.15. They fail on 1.16
because the upgrade integration test tries to install linkerd 2.5 which is not
compatible with 1.16.

Signed-off-by: Alejandro Pedraza <alejandro@buoyant.io>
alpeb added a commit that referenced this issue Sep 4, 2019
Fixes #3356

1.16 removes some api groups that were already deprecated. From k8s blog
post (https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/):

```
- PodSecurityPolicy: will no longer be served from extensions/v1beta1 in
v1.16.
    Migrate to the policy/v1beta1 API, available since v1.10. Existing
    persisted data can be retrieved/updated via the policy/v1beta1 API.
- DaemonSet, Deployment, StatefulSet, and ReplicaSet: will no longer be
served from extensions/v1beta1, apps/v1beta1, or apps/v1beta2 in v1.16.
    Migrate to the apps/v1 API, available since v1.9. Existing persisted
    data can be retrieved/updated via the apps/v1 API.
```

Previous PRs had already made this change at the Helm templates level,
but we still needed to do it at the API calls and tests.

The integration tests ran fine for k8s 1.12 and 1.15. They fail on 1.16
because the upgrade integration test tries to install linkerd 2.5 which is not
compatible with 1.16.

Signed-off-by: Alejandro Pedraza <alejandro@buoyant.io>
alpeb added a commit that referenced this issue Sep 4, 2019
Fixes #3356

1.16 removes some api groups that were already deprecated. From k8s blog
post (https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/):

```
- PodSecurityPolicy: will no longer be served from extensions/v1beta1 in
v1.16.
    Migrate to the policy/v1beta1 API, available since v1.10. Existing
    persisted data can be retrieved/updated via the policy/v1beta1 API.
- DaemonSet, Deployment, StatefulSet, and ReplicaSet: will no longer be
served from extensions/v1beta1, apps/v1beta1, or apps/v1beta2 in v1.16.
    Migrate to the apps/v1 API, available since v1.9. Existing persisted
    data can be retrieved/updated via the apps/v1 API.
```

Previous PRs had already made this change at the Helm templates level,
but we still needed to do it at the API calls and tests.

The integration tests ran fine for k8s 1.12 and 1.15. They fail on 1.16
because the upgrade integration test tries to install linkerd 2.5 which is not
compatible with 1.16.

Signed-off-by: Alejandro Pedraza <alejandro@buoyant.io>
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 17, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants