持续关注 「K8S 生态周报」的小伙伴们,在每周的上游进展中,应该已经了解到了大多数新的特性和修复,这里来一并总结下。node
Kubernetes 即将发布,截至发文时,v1.18.0 还没有正式 Release 。不过已经在进行中了, 让咱们抢先看看 Kubernetes v1.18 为咱们带来了哪些新内容吧!git
v1.18 中的主要变动集中在 deprecations
, metrics
, kubectl
和 node
方面。咱们逐个来看看:github
引用我在K8S 生态周报| Helm v3.1.2 发布中的介绍:redis
kubectl alpha debug
命令,可经过此命令来调试 Kubernetes 中的资源,不过也请注意,此命令尚在 alpha 阶段,后续还会有变更。引用我在K8S 生态周报| containerd v1.2.13 发布 中的介绍:api
--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 还有些其余值得注意的内容:app
kubectl delete --force
删除资源的时候,再也不须要添加 --grace-period=0
了。示例以下:在 v1.18 中:ui
(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 以前:spa
(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
复制代码
apps/v1beta1
和 apps/v1beta2
都将废弃,请使用 apps/v1
代替;daemonsets
, deployments
, replicasets
资源的 API extensions/v1beta1
将被废弃,请使用 apps/v1
代替;networkpolicies
资源的 API extensions/v1beta1
将被废弃,请使用 networking.k8s.io/v1
代替;podsecuritypolicies
资源的 API extensions/v1beta1
将被废弃,请使用 policy/v1beta1
代替;/metrics/resource/v1alpha1
接口被废弃。其实每次版本发布,都会有不少 metrics 被废弃,v1.17 也一样。--healthz-port
和 --metrics-port
选项被废弃,请使用 --healthz-bind-address
和 --metrics-bind-address
代替。引用 K8S 生态周报| Docker v19.03.7 发布 中的介绍debug
kubeadm alpha certs renew
下的 --use-api
参数,目前预期在 v1.19 将其移除,若有用到相关功能的,请注意。引用 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 获取更加详尽的内容。
欢迎经过下面二维码订阅个人文章公众号【MoeLove】