k8s中如何固定一个pod的IP地址?该集群网络插件是calico
1、首先查看calico的CIDR地址范围
[root@nccztsjb-node-17 ~]# calicoctl get ippool NAME CIDR SELECTOR default-pool 172.23.0.0/16 all()
2、然后呢,在这个地址范围内,给pod选择一个固定的IP地址
比如:172.23.45.27
通过在pod中加入annotation来实现:
annotations: "cni.projectcalico.org/ipAddrs": "[\"172.23.45.27\"]"
使用如下的yaml创建一个pod
apiVersion: apps/v1 kind: Deployment metadata: name: pod-static-ip labels: app: pod-static-ip spec: selector: matchLabels: app: pod-static-ip template: metadata: labels: app: pod-static-ip annotations: "cni.projectcalico.org/ipAddrs": "[\"172.23.45.27\"]" spec: containers: - name: pod-static-ip image: 172.20.58.152/middleware/nginx:1.21.4
查看创建的pod的ip
[root@nccztsjb-node-01 ~]# kubectl get pod -o wide | grep static pod-static-ip-75779bcc95-hxj7f 1/1 Running 0 10s 172.23.45.27 node177 <none> <none> [root@nccztsjb-node-01 ~]#
确实是我们固定的IP地址172.23.45.27
3、重启一下,看pod的ip地址是否会变化
[root@nccztsjb-node-01 ~]# kubectl delete pod pod-static-ip-75779bcc95-hxj7f pod "pod-static-ip-75779bcc95-hxj7f" deleted [root@nccztsjb-node-01 ~]# [root@nccztsjb-node-01 ~]# kubectl get pod -o wide | grep static pod-static-ip-75779bcc95-7996b 1/1 Running 0 3s 172.23.45.27 node177 <none> <none> [root@nccztsjb-node-01 ~]#
OK,重启pod之后,ip地址,还是没变,目的达成。
你好,
如果你读完了整个技术文章,下面的内容,对你来说,或许更加的重要...
在4年多的k8s体系运维时间里,我整理了230个(会持续更新),k8s最常见(最关键)的问题。
这些问题,让我轻松地应对几乎所有的k8s问题,并且,都是基于项目及大量的实验的总结。
如果你能够彻底掌握这些问题,你的知识体系,k8s基本功,就可以轻松超过80%的k8s运维人员。
更重要的是,掌握这些知识非常简单,每天5个问题,2个月后,你就可以打下k8s的见识基础,让你在云原生领域游刃有余。
每个问题,都有对应的答案,以及相关的示例演示(有些还有项目背景说明)
只要,一步一步,跟着做,就可以了。
当然,如果你想要在更短的时间内,成为k8s专家,你只需要多练习几次就可以了。
不过,和你自己从头摸索相比较,大大减少了你的学习时间,同时,大大提升了你的学习效力。
更加重要的是,如果你知道20/80原理,你就会明白,这些都是工作中最常用,最有效的20%的问题。
这个资料是第一次公开,为了了解市场上,有多少人在关注k8s的技术,我决定免费赠送这个问题指南,只当交个朋友。
添加微信:13240133388,备注:k8s
我将送你一份免费的PDF报告。
你应该知道,一本k8s权威指南(800页,没几个人看得完),要179.90元,这些问题,是在反复阅读和实践了这本书之后,结合项目实践,得出来的精华。
想想看,这将节省你多少时间?而你得到是最精华的部分?
相信你,掌握之后,立马让你的工作的效率大增,你的领导会对你的进步刮目相看。
PS. 行动是一切的开始,现在立马订阅吧。期待你的蜕变。