Kubernetes 即将发布,截至发文时,v1.18.0 尚未正式 Release 。不过已经在进行中了, 让我们抢先看看 Kubernetes v1.18 为我们带来了哪些新内容吧!
v1.18 中的主要变更集中在 deprecations, metrics , kubectl 和 node 方面。我们逐个来看看:
kubectl 相关变更
引用我在K8S 生态周报| Helm v3.1.2 发布中的介绍:
- #88004 正式添加了
kubectl alpha debug命令,可通过此命令来调试 Kubernetes 中的资源,不过也请注意,此命令尚在 alpha 阶段,后续还会有变动。
引用我在K8S 生态周报| containerd v1.2.13 发布 中的介绍:
- #87714 kubectl 的
--server-dry-run被标记为废弃,并且可以通过使用--dry-run=server替代。并且 kubectl 的--dry-run参数接收的值,也变成了client,server以及none。示例如下:
(MoeLove) ➜ ~ kubectl create deploy moelove --image=redis --dry-run=client deployment.apps/moelove created (dry run) (MoeLove) ➜ ~ kubectl create deploy moelove --image=redis --dry-run=server deployment.apps/moelove created (server dry run) (MoeLove) ➜ ~ kubectl create deploy moelove --image=redis --dry-run=none deployment.apps/moelove created 复制代码
此外,kubectl 还有些其他值得注意的内容:
- #87776 当你使用
kubectl delete --force删除资源的时候,不再需要添加--grace-period=0了。示例如下:
在 v1.18 中:
(MoeLove) ➜ ~ kubectl get pods NAME READY STATUS RESTARTS AGE redis-65d8df48cf-2rcqq 1/1 Running 0 48s (MoeLove) ➜ ~ kubectl delete pods redis-65d8df48cf-2rcqq --force warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely. pod "redis-65d8df48cf-2rcqq" force deleted 复制代码
在 v1.18 之前:
(MoeLove) ➜ ~ kubectl get pods kNAME READY STATUS RESTARTS AGE redis-65d8df48cf-qrd4h 1/1 Running 0 53s (MoeLove) ➜ ~ kubectl delete pods redis-65d8df48cf-qrd4h --force warning: --force is ignored because --grace-period is not 0. pod "redis-65d8df48cf-qrd4h" deleted 复制代码
相关废弃
#85903 kube-apiserver
- 所有资源的 API
apps/v1beta1和apps/v1beta2都将废弃,请使用apps/v1代替; daemonsets,deployments,replicasets资源的 APIextensions/v1beta1将被废弃,请使用apps/v1代替;networkpolicies资源的 APIextensions/v1beta1将被废弃,请使用networking.k8s.io/v1代替;podsecuritypolicies资源的 APIextensions/v1beta1将被废弃,请使用policy/v1beta1代替;
kubelet
- #86282 kubelet 的
/metrics/resource/v1alpha1接口被废弃。其实每次版本发布,都会有很多 metrics 被废弃,v1.17 也同样。
kube-proxy
- #88512
--healthz-port和--metrics-port选项被废弃,请使用--healthz-bind-address和--metrics-bind-address代替。
kubeadm
引用 K8S 生态周报| Docker v19.03.7 发布 中的介绍
- #88827 kubeadm 废弃了
kubeadm alpha certs renew下的--use-api参数,目前预期在 v1.19 将其移除,如有用到相关功能的,请注意。
kubectl
引用 K8S 生态周报| Docker v19.03.6-rc2 发布 中的介绍:
在 Kubernetes v1.18 中,会将之前已标注过期的各类 generator 都移除掉。 也就是说,自 v1.18 起使用 kubectl run 命令主要就是创建 Pod 了,而不会创建多余的 deploy 之类的。
至于像 service 加了 --expose 倒也还可以创建,只不过类似 --service-generator 这类参数就也都标记废弃了。
v1.18 之前版本的执行结果是这样:
(MoeLove) ➜ ~ kubectl run redis --image="redis:alpine" kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead. deployment.apps/redis created (MoeLove) ➜ ~ kubectl get all -l run=redis NAME READY STATUS RESTARTS AGE pod/redis-8544698fd7-tvz5q 1/1 Running 0 14s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/redis 1/1 1 1 14s NAME DESIRED CURRENT READY AGE replicaset.apps/redis-8544698fd7 1 1 1 14s 复制代码
v1.18 版本:
(MoeLove) ➜ bin ./kubectl run redis-new --image="redis:alpine" pod/redis-new created (MoeLove) ➜ bin ./kubectl get all -l run=redis-new NAME READY STATUS RESTARTS AGE pod/redis-new 1/1 Running 0 12s 复制代码
总结
以上内容是我认为在 Kubernetes v1.18 中比较值得关注的部分。待 v1.18.0 正式发布时,可再参考官方的 ReleaseNote 获取更加详尽的内容。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/industrynews/258317.html