cybozu-go / neco

Project Neco
https://app.zenhub.com/workspaces/neco-5ca28d055128c041a68c0a8f/boards
Apache License 2.0
242 stars 11 forks source link

Check the release note of Kubernetes 1.18 #1094

Closed yokaze closed 4 years ago

yokaze commented 4 years ago

What

To conform to kubernetes 1.18, check the release note of this version.

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md

How

Read it and pick the necessary actions. Necessary actions should be listed as comments for this issue.

e.g. https://app.zenhub.com/workspaces/neco-5ca28d055128c041a68c0a8f/issues/cybozu-go/neco/828

Checklist

yokaze commented 4 years ago

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#serverside-apply---beta-2

Server-side Apply was promoted to Beta in 1.16, but is now introducing a second Beta in 1.18. This new version will track and manage changes to fields of all new Kubernetes objects, allowing you to know what changed your resources and when.

yokaze commented 4 years ago

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#extending-ingress-with-and-replacing-a-deprecated-annotation-with-ingressclass kubernetes.io/ingress.class is deprecated and IngressClass is introduced as a replacement.

yokaze commented 4 years ago

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#sig-cli-introduces-kubectl-debug We need to enable EphemeralContainers feature gate to use kubectl debug.

umezawatakeshi commented 4 years ago

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#kubectl We often assumes that kubectl run create Deployment. We have to fix those test code.

umezawatakeshi commented 4 years ago

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#client-go We have to follow this modification, especially in cke and bmc-reverse-proxy. Context appears as a first argument.

yokaze commented 4 years ago

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#client-go We need to check metrics update.

umezawatakeshi commented 4 years ago

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#other-api-changes CRD schema may be failed to applied. we have to fix them as needed.

yokaze commented 4 years ago

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#kube-scheduler-1 A task is already created: multiple scheduling profiles https://github.com/cybozu-go/neco/issues/988 Import settings as Go-typed objects.

yokaze commented 4 years ago

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#kube-scheduler-1

Scheduler Extenders can now be configured in the v1alpha2 component config

yokaze commented 4 years ago

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#kube-proxy-1

Added kube-proxy flags --ipvs-tcp-timeout, --ipvs-tcpfin-timeout, --ipvs-udp-timeout to configure IPVS connection timeouts

Related to Coil v2.

yokaze commented 4 years ago

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#kube-proxy-1 We can use --detect-local-mode as NodeCIDR to optimize iptables and/or ipvs rules. (neco/etc/cke-template.yml) It is because we separate Pod and Service IP ranges.

yokaze commented 4 years ago

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#feature-2

DefaultConstraints can be specified for PodTopologySpread Plugin in the scheduler’s ComponentConfig

We need to enhance CKE cluster.yml to support cluster-level default constraints. https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#cluster-level-default-constraints

yokaze commented 4 years ago

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#feature-2

Kubectl/drain: add disable-eviction option.Force drain to use delete, even if eviction is supported. This will bypass checking PodDisruptionBudgets, and should be used with caution. Kubectl/drain: add skip-wait-for-delete-timeout option. If a pod’s DeletionTimestamp is older than N seconds, skip waiting for the pod. Seconds must be greater than 0 to skip.

We can utilize these options in automating reboot.

yokaze commented 4 years ago

PodTopologySpread plugin now excludes terminatingPods when making scheduling decisions.

Just FYI

umezawatakeshi commented 4 years ago

SafeSysctlWhitelist: add net.ipv4.ping_group_range

we can now send ping https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#feature-2

yokaze commented 4 years ago

EvenPodsSpread is enabled by default in 1.18. We need to remove the option utilization.

umezawatakeshi commented 4 years ago

The kubelet and the default docker runtime now support running ephemeral containers in the Linux process namespace of a target container. Other container runtimes must implement support for this feature before it will be available for that runtime.

We use containerd instead of Docker. evaluation is requred.

umezawatakeshi commented 4 years ago

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#dependencies-7

pause container should be updated. Also, we should not use master.

yokaze commented 4 years ago

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#other-bug-cleanup-or-flake

k8s v1.18.1 also has some metrics name change. We need to check them.