Kubernetes生态 之 Kubernetes 1.19 版本重要特性

Kubernetes 1.19 版本重要特性

Posted by 董江 on Saturday, August 29, 2020

Kubernetes 1.19 版本 release

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

通用临时卷

新的通用临时卷(Generic ephemeral volumes)功能允许将任何支持动态配置的现有存储驱动程序用作临时卷,并将卷的生命周期绑定到 Pod。它可用于提供不同于根磁盘的暂存存储,例如持久内存或该节点上的单独本地磁盘。支持卷配置的所有 StorageClass 参数。支持 PersistentVolumeClaims 支持的所有功能,例如存储容量跟踪、快照和还原以及卷大小调整。

kind: Pod
apiVersion: v1
metadata:
  name: my-app
spec:
  containers:
    - name: my-frontend
      image: busybox:1.28
      volumeMounts:
      - mountPath: "/scratch"
        name: scratch-volume
      command: [ "sleep", "1000000" ]
  volumes:
    - name: scratch-volume
      ephemeral:            # 通用临时卷
        volumeClaimTemplate:
          metadata:
            labels:
              type: my-frontend-volume
          spec:
            accessModes: [ "ReadWriteOnce" ]
            storageClassName: "scratch-storage-class"
            resources:
              requests:
                storage: 1Gi

Ingress API GA

引入 klog 日志库

引入klog库 , 格式化日志更方便的结构化的接口(json 和 ini)。并且每个现有的格式化日志方法 ( Infof, Errorf) 现在都与结构化方法 ( InfoS, ErrorS) 匹配

// ...
func PodEligibleToPreemptOthers(pod *v1.Pod, nodeInfos framework.NodeInfoLister, nominatedNodeStatus *framework.Status) bool {
  if pod.Spec.PreemptionPolicy != nil && *pod.Spec.PreemptionPolicy == v1.PreemptNever {
	// 添加不通对象数据
    klog.V(5).InfoS("Pod is not eligible for preemption because it has a preemptionPolicy of Never", "pod", klog.KObj(pod))  
    return false

  }
  // ...
  return true

}

CSI 卷监控

CSI 接口支持 health 上报 kubelet,并上报到 apiserver。 可支持Pod中单个卷的健康检查

kubelet去掉Docker内置

去掉默认Docker运行时,全量迁移到CNI

新增 节点拓扑管理器

节点拓扑管理器 (Node Topology Manager) GA NUMANodeAffinity Topology Manager提供了四种策略供用户组合各个资源的TopologyHint。这四种策略是:

  1. none:什么也不做,与没有开启Topology Manager的效果一样。
  2. best-effort: 允许Topology Manager通过组合各个资源提供的TopologyHint,而找到一个最优的TopologyHint,如果没有找到也没关系,节点也会接纳这个Pod。
  3. restricted:允许Topology Manager通过组合各个资源提供的TopologyHint,而找到一个最优的TopologyHint,如果没有找到,那么节点会拒绝接纳这个Pod,如果Pod遭到节点拒绝,其状态将变为Terminated。
  4. single-numa-node:允许Topology Manager通过组合各个资源提供的TopologyHint,而找到一个最优的TopologyHint,并且这个最优的TopologyHint所涉及的NUMA节点个数是1。如果没有找到,那么节点会拒绝接纳这个Pod,如果Pod遭到节点拒绝,其状态将变为Terminated。
kubelet ...  --topology-manager-policy = [none | best-effort | restricted | single-numa-node] ...

「如果这篇文章对你有用,请随意打赏」

Kubeservice博客

如果这篇文章对你有用,请随意打赏

使用微信扫描二维码完成支付