kubernetes1.20版本启用ipvs模式

2023-11-04

 

在1.19版本之前,kubeadm部署方式启用ipvs模式时,初始化配置文件需要添加以下内容:

---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
featureGates:
  SupportIPVSProxyMode: true
mode: ipvs

 

本次在1.20.2版本中,使用kubeadm进行集群初始化时,虽然可以正常部署,但是查看pod情况的时候可以看到kube-proxy无法运行成功,报错部分内容如下:

]# kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE

....#省略其他输出内容
kube-system kube-proxy-7vrbv 0/1 CrashLoopBackOff 9 43m
kube-system kube-proxy-ghs7h 0/1 CrashLoopBackOff 9 43m
kube-system kube-proxy-l9twb 0/1 CrashLoopBackOff 1 7s
kube-system kube-proxy-mzfrf 0/1 CrashLoopBackOff 9 42m
kube-system kube-proxy-nxpls 0/1 CrashLoopBackOff 9 3h4m
kube-system kube-proxy-pmmtq 0/1 CrashLoopBackOff 8 42m
#查看日志信息
]# kubectl  logs kube-proxy-l9twb -n kube-system
F0114 12:58:34.042769       1 server.go:488] failed complete: unrecognized feature gate: SupportIPVSProxyMode
goroutine 1 [running]:
k8s.io/kubernetes/vendor/k8s.io/klog/v2.stacks(0xc00000e001, 0xc0004b6000, 0x6e, 0xc0)
    /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/klog/v2/klog.go:1026 +0xb9
k8s.io/kubernetes/vendor/k8s.io/klog/v2.(*loggingT).output(0x29b65c0, 0xc000000003, 0x0, 0x0, 0xc0003d8230, 0x28edbc9, 0x9, 0x1e8, 0x0)
    /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/klog/v2/klog.go:975 +0x19b
k8s.io/kubernetes/vendor/k8s.io/klog/v2.(*loggingT).printf(0x29b65c0, 0xc000000003, 0x0, 0x0, 0x0, 0x0, 0x1b3a573, 0x13, 0xc000431310, 0x1, ...)
    /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/klog/v2/klog.go:750 +0x191
k8s.io/kubernetes/vendor/k8s.io/klog/v2.Fatalf(...)

通过报错可以看到kube-proxy无法识别SupportIPVSProxyMode这个字段,于是访问官方查看最新版本ipvs开启的正确配置,通过https://github.com/kubernetes/kubernetes/blob/master/pkg/proxy/ipvs/README.md可以看到官方说明:

Cluster Created by Kubeadm

If you are using kubeadm with a configuration file, you have to add mode: ipvs below the kubeProxy field as part of the kubeadm configuration.

...
kubeProxy:
  config:
    mode: ipvs
...

由于集群已经初始化成功了,所以现在改kubeadm初始化配置文件没有意义,因为我们需要直接修改kube-proxy的启动配置

通过查看kube-pxory的资源清单可以知道, kube-proxy的配置文件是通过configmap方式挂载到容器中的,因此我们只需要对应修改configmap中的配置内容,就可以将无效字段删除

]# kubectl -n kube-system get pod kube-proxy-24tkb -o yaml
apiVersion: v1
kind: Pod
metadata:
.....  #其他内容省略
  containers:
  - command:
    - /usr/local/bin/kube-proxy
    - --config=/var/lib/kube-proxy/config.conf
    - --hostname-override=$(NODE_NAME)
.....  #其他内容省略
    volumeMounts:
    - mountPath: /var/lib/kube-proxy
      name: kube-proxy
.....  #其他内容省略
  volumes:
  - configMap:
      defaultMode: 420
      name: kube-proxy
    name: kube-proxy

 

]# kubectl get cm -n kube-system
NAME                                 DATA   AGE
coredns                              1      5h18m
extension-apiserver-authentication   6      5h18m
kube-proxy                           2      5h18m
kube-root-ca.crt                     1      5h18m
kubeadm-config                       2      5h18m
kubelet-config-1.20                  1      5h18m
]# kubectl edit cm kube-proxy -n kube-system    
#在编辑模式中找到以下字段,删除后保存退出
featureGates: 
  SupportIPVSProxyMode: true

 

然后将删除所有kube-proxy进行重启,查看pod运行情况

]# kubectl get pod -n kube-system
NAME                                          READY   STATUS    RESTARTS   AGE
...  #其他内容省略
kube-proxy-24tkb                              1/1     Running   0          122m
kube-proxy-9cl7j                              1/1     Running   0          123m
kube-proxy-cxbg5                              1/1     Running   0          123m
kube-proxy-cxgqk                              1/1     Running   0          123m
kube-proxy-hkq54                              1/1     Running   0          123m
kube-proxy-ttdqb                              1/1     Running   0          122m

在服务器上安装ipvsadm,查看ipvs模式是否启用成功

]# yum install ipvsadm -y
]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.96.0.1:443 rr
  -> 和谐ip:6443          Masq    1      0          0         
  -> 和谐ip:6443          Masq    1      0          0         
  -> 和谐ip:6443          Masq    1      0          0         
TCP  10.96.0.10:53 rr
TCP  10.96.0.10:9153 rr
UDP  10.96.0.10:53 rr
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kubernetes1.20版本启用ipvs模式 的相关文章

随机推荐

  • 数据隐私与安全在大数据时代的挑战与应对

    文章目录 数据隐私的挑战 数据安全的挑战 应对策略和方法 1 合规和监管 2 加密技术 3 匿名化和脱敏 4 安全意识培训 5 隐私保护技术 结论 个人主页 程序员 小侯 CSDN新晋作者 欢迎 点赞 评论 收藏 收录专栏 大数据系列 文章
  • 国内“风口”转变,中国游戏公司纷纷“外逃”,东南亚是个好去处

    中国游戏开发商正在加强对国际市场 特别是东南亚市场的承诺 因为他们的国内公司正在努力应对更困难的中国市场 以便实施在下一阶段发展布局 根据移动应用市场情报公司Sensor Tower的一份报告 按收入排名的前100名全球移动游戏中 有39款
  • String类型的时间转换成BigDecimal类型

    private BigDecimal timeformat String time throws ParseException SimpleDateFormat formatter new SimpleDateFormat yyyy MM
  • Eureka中的服务状态显示UNKOWN(1)

    Spring cloud在加入Config配置中心后 Eureka中的服务状态显示为UNKOUNW 1 Eureka的client端显示如下注册状态为204 重新注册 Eureka服务端 Eureka client端 2018 11 02
  • pom文件解读

    一 pom文件解读
  • Visio+Latex 插入EPS等矢量图

    Latex插入单栏 或者跨栏 的图片 在figure后面加个 即可 即figure begin figure h centering includegraphics width linewidth Figure1 caption Whate
  • CentOS 7通过samba实现与Windows共享文件夹

    Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件 由服务器及客户端程序构成 SMB Server Messages Block 信息服务块 是一种在局域网上共享文件和打印机的一种通信协议 它为局域网内的不同计算机之间提供
  • 【数据结构与算法——TypeScript】树结构Tree

    数据结构与算法 TypeScript 树结构 Tree 认识树结构以及特性 什么是树 真实的树 相信每个人对现实生活中的树都会非常熟悉 我们来看一下树有什么特点 树通常有一个根 连接着根的是树干 树干到上面之后会进行分叉成树枝 树枝还会分叉
  • OpenCV实现人脸识别

    该程序对头像很小的图片效果不是很好 VS2017 OpenCV3 5 主要步骤 1 读取图像 2 转为灰度图 3 直方图均衡化 增加对比度 4 载入分类器 5 检测关于脸部位置 include
  • 地形平滑算法

    地形平滑算法 2013 06 20 18 33 2486人阅读 评论 0 收藏 举报 分类 OGRE 41 C C 10 版权声明 本文为博主原创文章 未经博主允许不得转载 拉出来的地下不平滑怎么办 笨办法就是美工一个顶点一个顶点的调整 而
  • AWB实现流程

    简介 本篇谈论下对AWB算法的调查和预研工作 内容概述 所谓AWB也就是自动白平衡的意思 白平衡在相机中很常见 主要是和色温 色彩还原 色调调整相关 当白平衡设置不佳的时候 常会出现如下这些情况 在日光灯的房间里拍摄的影像会显得发绿 在室内
  • UE5项目打包发布Windows需要安装插件

    一 下图为UE5项目打包发布Windows的安装路劲 前面感叹号为未安装插件 二 打包前的其他可有可无设置 1 编辑Edit 项目设置Project Settings 2 平台Platforms Windows 三 安装路径 1 搜索vis
  • 群晖(docker图形化界面)使用 SpeedTest 测速

    群晖 docker图形化界面 使用 SpeedTest 测速 博主博客 https blog uso6 com https blog csdn net dxk539687357 本文主要介绍在群晖中安装 speedtest 进行网络测速 一
  • 会话跟踪技术:会话Cookie,URL重写和HttpSession

    一 会话跟踪 session tracking 技术 会话是客户端发送请求 服务器返回响应的连接时间段 HTTP是无状态协议 每次都是单独连接 不能维持客户的上下文信息 会话跟踪技术是用于维持客户端和服务器端通信信息的技术 三种典型客户端会
  • 云计算介绍之云计算存储(1)

    文章目录 云计算存储 1 存储架构 1 1存储概念 1 2系统组成 1 系统硬件 2 存储软件 3 存储方案 1 3存储分类 1 3 1 开放系统的存储 1 外挂存储 a Fabric Attached Storage 网络存储 FAS 1
  • TinyPerson数据集json文件改写为xml文件

    TinyPerson NWPU VHR 10或其他同理 数据集文件改写为VOC类型的xml文件 代码转python实现 创作不易 点个赞吧 文章目录 TinyPerson NWPU VHR 10或其他同理 数据集文件改写为VOC类型的xml
  • CentOS 6.3下rsync服务器的安装与配置

    一 rsync 简介 Rsync remote synchronize 是一个远程数据同步工具 可通过LAN WAN快速同步多台主机间的文件 也可以使用 Rsync 同步本地硬盘中的不同目录 Rsync 是用于取代rcp的一个工具 Rsyn
  • WINDOWS SERVER 2012证书服务安装配置

    WINDOWS SERVER 2012证书服务安装配置 首先需要下载一个windows server 2012的镜像 安装虚拟机 来进行证书服务安装之前的准备 在进行安装证书服务之前 首先应该安装配置域服务 否则安装证书服务无法正常安装配置
  • python好学吗?0基础学习python需要那些准备

    Python是一种计算机程序设计语言 你可能已经听说过很多种流行的编程语言 比如非常难学的C语言 非常流行的Java语言 适合初学者的Basic语言 适合网页编程的JavaScript语言等等 那Python是一种什么语言 首先 我们普及一
  • kubernetes1.20版本启用ipvs模式

    在1 19版本之前 kubeadm部署方式启用ipvs模式时 初始化配置文件需要添加以下内容 apiVersion kubeproxy config k8s io v1alpha1 kind KubeProxyConfiguration f