当前位置: 首页 > news >正文

k8s 1.27新特性in-place使用方法:避坑指南(官方文档有坑,已提issue)

背景

按照官方文档试用新版的in-place特性时,一字不差地执行了,但是却出现了执行失败的情况:

  1. 执行kubectl -n qos-example patch pod qos-demo-5 --patch '{"spec":{"containers":[{"name":"qos-demo-ctr-5", "resources":{"requests":{"cpu":"800m"}, "limits":{"cpu":"800m"}}}]}}'后该pod一直处于RunContainerError状态;
  2. 使用kubectl describe 查看详情,eventlog如下:
Events:Type Reason Age From Message---- ------ ---- ---- -------Normal Scheduled 2m41s default-scheduler Successfully assigned qos-example/qos-demo-5 to 172.30.94.201Normal Pulled 2m38s kubelet Successfully pulled image "nginx" in 2.468850418s (2.468866698s including waiting)Normal Started 2m38s kubelet Started container qos-demo-ctr-5Normal Killing 27s kubelet Container qos-demo-ctr-5 definition changed, will be restartedNormal Pulled 25s kubelet Successfully pulled image "nginx" in 2.412743103s (2.412766469s including waiting)Normal Pulled 22s kubelet Successfully pulled image "nginx" in 2.484909047s (2.484925388s including waiting)Normal Pulling 9s (x4 over 2m41s) kubelet Pulling image "nginx"Normal Created 7s (x4 over 2m38s) kubelet Created container qos-demo-ctr-5Warning Failed 7s (x3 over 25s) kubelet Error: failed to start container "qos-demo-ctr-5": Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error setting cgroup config for procHooks process: failed to write "80000": write /sys/fs/cgroup/cpu,cpuacct/kubepods.slice/kubepods-poda24bc212_b6c2_4fd4_af47_111b6b937b10.slice/qos-demo-ctr-5/cpu.cfs_quota_us: invalid argument: unknownNormal Pulled 7s kubelet Successfully pulled image "nginx" in 2.314366627s (2.314379589s including waiting)
  1. 可以看到是修改cgroup限制时失败,参数不对,因此第一反应是docker、k8s、linux内核及cgroup版本不一致导致某接口参数格式不一致,所以报此错误,全部升级到要求版本后仍未解决;
  2. 给官方提了issue,很智障的是他们说自己的文档忘了写事前准备导致执行不了,thanks me后,我再问就让我去别的地方提问,修复日期和方法也不说,无语;
  3. 开始自己挖掘,解决方法如下

解决办法

  1. 在master节点执行vim /etc/kubernetes/manifests/kube-apiserver.yaml,在command下添加--feature-gates=InPlacePodVerticalScaling=true,等待apiserver自动重启完成;
  2. 在所有的node都执行一遍:
    (1)执行/var/lib/kubelet/kubeadm-flags.env,在末尾添加/var/lib/kubelet/kubeadm-flags.env
    (2)执行systemctl restart kubelet;
    (3)执行systemctl status kubelet,状态变为active (running)后操作结束;
    (4)对所有node重复上述操作;

后续操作

完成上述事前准备后,就可以按照官方文档玩耍了

另外k8s 1.27版本搭建可以看这篇文章,我按照他的方法一步步执行,基本没踩到坑

参考资料:

(1)https://stackoverflow.com/questions/52416671/kubelet-configuration
(2)https://stackoverflow.com/questions/59814862/how-do-you-enable-feature-gates-in-k8s
(3)https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/
(4)https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/

http://www.lryc.cn/news/89722.html

相关文章:

  • 网络传输(传输介质、通信方式、交换方式)
  • 【Unity】Time.deltaTime有什么用?看完你就明白
  • vue实现用户动态权限登录
  • ONNX模型修改为自定义节点
  • 内存对齐原则
  • Java SPI 一 之SPI(Service Provider Interface)进阶 AutoService
  • C++ list类成员函数介绍
  • 【服务器】本地搭建PHP简单Imagewheel私人云图床
  • 第四十二回:DateRangePickerDialog Widget
  • 【C++系列P3】‘类与对象‘-三部曲——[基础知识](1/3)
  • Android UEvent事件分析之Kernel上报电量
  • C++ vector模板和deque的简单应用
  • 声明式事务控制
  • cisp pte模拟题
  • Docker容器 和 Kubernetes容器集群管理系统
  • 港联证券|资金疯狂涌入AI,这一板块涨幅超90%!万亿巨头继续狂飙
  • 短视频矩阵系统源码-开源开发php语言搭建
  • PFEA112-20 3BSE050091R20 张力控制器
  • Java springboot+vue生成报纸排版页面的新闻官网
  • Terra-Luna归零一年后:信任重建、加密未来路在何方?
  • Android 12.0 手动安装Persistent app失败的解决方案
  • Unity3D安装:从命令行安装 Unity
  • C++模板(详解)
  • WuThreat身份安全云-TVD每日漏洞情报-2023-05-25
  • android 12.0去掉recovery模式UI页面的选项
  • C++ vector类成员函数介绍
  • 【C++】二叉搜索树Binary Search Tree
  • Hover.css动画库的使用
  • Baumer工业相机堡盟工业相机如何通过文件保存和导入的方式保存和载入相机的各类参数(C#)
  • 封装设计!抽象BasePage,提升WEB自动化测试用例质量和效率