首页 > 其他分享 >K8S集群固定Pod IP

K8S集群固定Pod IP

时间:2024-02-23 15:33:18浏览次数:28  
标签:projectcalico name IP org Pod K8S cni

原理

主要利用 Calico 组件的两个kubernetes注解

(1)cni.projectcalico.org/ipAddrs
(2)cni.projectcalico.org/ipAddrs

单个Pod固定IP

利用注解 cni.projectcalico.org/ipAddrs
示例 Yaml如下

apiVersion: apps/v1
kind: Deployment
metadata:
  name: front-end
  labels:
    app: front-end
spec:
  replicas: 1
  selector:
    matchLabels:
      app: front-end
  template:
    metadata:
      labels:
        app: front-end
      annotations:
        "cni.projectcalico.org/ipAddrs": "[\"10.233.126.33\"]"
    spec:
      nodeSelector:
        app: demo3
      containers:
      - name: nginx
        image: autoregistry.rd.tp-link.net/auto/nginx:1.18
        imagePullPolicy: IfNotPresent
        resources:
          requests:
            cpu: 100m
          limits:
            cpu: 500m
        ports:
        - name: http
          containerPort: 80
          protocol: TCP

多个Pod固定使用IP池

利用注解 cni.projectcalico.org/ipv4pools
需要创建额外IP池(除了默认的default-pool)
查看默认的IP池

[root@iamdemo1 test]# calicoctl get ippool

image

apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
  name: new-pool2
spec:
  blockSize: 31
  cidr: 10.21.0.2/31
  ipipMode: Never
  natOutgoing: true
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
  name: new-pool1
spec:
  blockSize: 31 ##指定IP地址块大小
  cidr: 10.21.0.0/31  ##指定了IP地址池的CIDR地址范围为10.21.0.0/31
  ipipMode: Never ##不使用IPIP隧道模式
  natOutgoing: true ## 出站NAT(网络地址转换)为启用状态,出站会将私有网络的ip转为公共ip地址

deployment定义中需要定义annotations

annotations:
        "cni.projectcalico.org/ipv4pools": "[\"new-pool1\",\"new-pool2\"]"

在固定单个Pod IP实践中
删除掉原来的Pod发现 IP仍为定义的IP没有变化
image

标签:projectcalico,name,IP,org,Pod,K8S,cni
From: https://www.cnblogs.com/iamxiaofu/p/18029648

相关文章

  • python调用Javascript实践
    一、背景知识1、Node.jsjavacript的运行环境有两个:浏览器、node.jsNode.js是一个开源与跨平台的JavaScript运行时环境。它是一个可用于几乎任何项目的流行工具!Node.js在浏览器外运行V8JavaScript引擎(GoogleChrome的内核)。这使Node.js表现得非常出色。运行js的命......
  • java 异步导出zip压缩包
    需求:图片文件太大,采用压缩包下载/** *图片zip压缩包下载 *@paramresponse *@paramzipName压缩包名字 *@paramurls文件图片下载URL路径 *@paramimagesUrlsURL与对应文件名字map *@throwsException */publicstaticvoidexportZip(HttpServletRespon......
  • 一点小tip
    测试给我提的bug,我改了,叫fix,bug修复测试没给我提的bug,我改了,叫feat,维护有时使用@JsonFormat注解时,查到的时间可能会比数据库中的时间少八个小时,这是由于时区差引起的,JsonFormat默认的时区是GreenwichTime,默认的是格林威治时间,而我们是在东八区上,所以时间会比实际我们......
  • k8s prometheus监控自定义exporter接口
    案例1:我有的k8s中所有pod应用资源监控接口是/actuator/prometheus,但是默认prometheus监控的是/metrics,这是需要修改prometheus-server的configmap,修改抓取资源监控的api接口需要找到kubernetes-service-endpoints这一项,然后找到action:replace,然后添加replacement案例2:如果......
  • AtCoder WTF 2019 B Multiple of Nine/南外集训 2024.2.23 T1
    给定\(q\)个区间\(\{[l_i,r_i]\}\),计算满足条件的长度为\(n\)的十进制数码串\(S\)的个数\(\bmod10^9+7\):\(\foralli\in[1,q],num(S[l_i,r_i])\equiv0\pmod9\)。其中\(num(T)\)表示数码串\(T\)代表的整数,\(T[a,b]\)表示子串\(T_aT_{a+1}\dotsT_b\)......
  • pip安装时WARNING: Ignoring invalid distribution -XX的解决办法
    安装一些包出现的问题如下:原因:原因是后面对应的目录文件夹下有不合法的文件存在,造成这个问题的原因很可能是原先下载包的过程中因为电脑没电关机了导致下载中断,导致出现了temp文件导致解析失败了。d:\app\anconda\envs\pytorch\lib\site-packages解决办法:将目录文件夹下含有......
  • 让 K8s 更简单!8款你不得不知的 AI 工具-Part 2
    在part1中,我们探讨了目前比较流行的四种OpenAI开源工具。在今天的part2中我们将探究另外三种不同的OpenAI开源工具并介绍一些与Appilot相关的内容。 Kubectl-GPTKubectl-GPT是一个kubectl插件,可使用GPT模型从自然语言输入生成kubectl命令。该插件引入了ku......
  • IDS、IPS和防火墙的区别
    IDS(入侵检测系统)IDS是一种可以监视网络和系统活动的设备或应用程序,用于检测恶意活动或违反政策的行为。IDS主要有两种类型:网络入侵检测系统(NIDS)和主机入侵检测系统(HIDS)。NIDS监视整个网络的流量,而HIDS则监视单个主机。​​​​​​​​​IDS工作原理IDS(入侵检测系统)工作的基......
  • Eclipse配置Anaconda3
    参考1,参考2打开eclipse,Help->InstallNewSoftware->addPydevhttp://pydev.org/updates选择PyDevforEclipse接受安装信任......
  • Rocky9和CentOSStream9怎么设置固定IP地址
    Rocky9和CentOSStream9设置固定IP地址和CentOS不一样设置设置以下文件#cat/etc/NetworkManager/system-connections/ens3.nmconnection[connection]id=ens3uuid=322d81cf-5218-304d-b537-ddbb2a0eed07type=ethernetautoconnect-priority=-999interface-name=ens3times......