「K8S 生態週報」內容主要包含我所接觸到的 K8S 生態相關的每週值得推薦的一些信息。歡迎訂閱知乎專欄「k8s生態」。
Kubernetes v1.16 發佈週期開始
隨着前段時間 Kubernetes v1.15 的發佈,v1.16 的發佈週期開始了。本次的發佈週期一如往常,本月底增強功能凍結,下月底代碼凍結,9 月初完善文檔,計劃在 9 月中發佈 v1.16 版本。
其實按這個節奏看得話,大家如果需要維護生產中的 Kubernetes 集羣的話,還是儘快測試驗證並完成升級,以免所用版本 EOL,帶來一些其他的問題。
Knative Serving v0.7.x 發佈
本週 Knative Serving 發佈了 v0.7.1 版本,Knative 近期的開發還是比較活躍的。
需要注意的是若使用 v0.7.x 版本中新增的 serving.knative.dev/v1beta1
API 的話,則需要 Kubernetes v1.14 版本以上。具體原因請參考 #4533
Non-root 容器:在這個版本中所有發佈的容器均以非 root 用戶運行,這使得我們可以使用更嚴格的 PSP。
當然此版本中也包含一些破壞性變更,比如 status 字段廢棄。
關於此版本更多的細節請參考 ReleaseNote
Debian 10 buster 正式發佈
Debian 10 正式發佈了,其實按一般的角度來看,Linux 的一個發行版發佈不會出現在 K8S 生態週報中的。
但這裏有個需要注意的點,對於使用此版本部署 Kubernetes 時,需要注意一下。此版本中使用的 systemd
版本是 241.5 而這個版本中有個對於使用 Kubernetes 而言值得注意的點。
這個版本的 systemd 可能會破壞 LXD 容器的網絡,表現在可能無法生成 MAC 地址上。(我猜測現在關注 LXD 的用戶沒有那麼多了,這裏我也就不過多解釋了。)當然這個問題同樣也可能會出現在使用 Docker/runc/cri-o 等容器運行時的場景中。
最後,還是慶祝一下 Debian 10 的正式發佈,此版本內核也已經升級到了 4.19 。並且這個版本也有很多的改善和升級。具體內容可參考其 ReleaseNote
NGINX Ingress Controller 1.5.1 發佈
NGINX Ingress Controller 是由 NGINX 社區開發的 Ingress Controller 相比於 Kubernetes 的 Nginx Ingress Controller 而言主要區別如下:
Aspect or Feature | kubernetes/ingress-nginx | nginxinc/kubernetes-ingress with NGINX | nginxinc/kubernetes-ingress with NGINX Plus |
---|---|---|---|
Fundamental | |||
Authors | Kubernetes community | NGINX Inc and community | NGINX Inc and community |
NGINX version | Custom NGINX build that includes several third-party modules | NGINX official mainline build | NGINX Plus |
Commercial support | N/A | N/A | Included |
Load balancing configuration via the Ingress resource | |||
Merging Ingress rules with the same host | Supported | Supported via Mergeable Ingresses | Supported via Mergeable Ingresses |
HTTP load balancing extensions - Annotations | See the supported annotations | See the supported annotations | See the supported annotations |
HTTP load balancing extensions -- ConfigMap | See the supported ConfigMap keys | See the supported ConfigMap keys | See the supported ConfigMap keys |
TCP/UDP | Supported via a ConfigMap | Supported via a ConfigMap with native NGINX configuration | Supported via a ConfigMap with native NGINX configuration |
Websocket | Supported | Supported via an annotation | Supported via an annotation |
TCP SSL Passthrough | Supported via a ConfigMap | Not supported | Not supported |
JWT validation | Not supported | Not supported | Supported |
Session persistence | Supported via a third-party module | Not supported | Supported |
Canary testing (by header, cookie, weight) | Supported via annotations | Supported via custom resources | Supported via custom resources |
Configuration templates *1 | See the template | See the templates | See the templates |
Load balancing configuration via Custom Resources | |||
HTTP load balancing | Not supported | See VirtualServer and VirtualServerRoute resources. | See VirtualServer and VirtualServerRoute resources. |
Deployment | |||
Command-line arguments *2 | See the arguments | See the arguments | See the arguments |
TLS certificate and key for the default server | Required as a command-line argument/ auto-generated | Required as a command-line argument | Required as a command-line argument |
Helm chart | Supported | Supported | Supported |
Operational | |||
Reporting the IP address(es) of the Ingress controller into Ingress resources | Supported | Supported | Supported |
Extended Status | Supported via a third-party module | Not supported | Supported |
Prometheus Integration | Supported | Supported | Supported |
Dynamic reconfiguration of endpoints (no configuration reloading) | Supported with a third-party Lua module | Not supported | Supported |
內容來源:NGINX Ingress Controller 文檔
本次發佈的 1.5.1 將 NGINX 版本更新到了 1.17.1 ,升級時可直接使用 nginx/nginx-ingress:1.5.1
或 nginx/nginx-ingress:1.5.1-alpine
也可直接使用 0.3.1 的 Helm Chart
更多信息請參考 ReleaseNote
Kubernetes 上游進展
來說一點上游開發的進展吧
- 新增了
Runtimeclass
的准入控制,通過這個新的特性,我們可以計算和 Pod 的 sanbox 綁定的資源了, 參見 78484 - 新增了對在每個節點上可部署的每個卷類型的數量的限制, 參見 77595
- kubeadm 修復了一個
reset
命令時候使用錯誤的函數, 參見 79326
可以通過下面二維碼訂閱我的文章公衆號【MoeLove】