serviceip原理-每天5分钟玩转docker容器技术(137)

author author     2022-10-22     541

关键词:

Service Cluster IP 是一个虚拟 IP,是由 Kubernetes 节点上的 iptables 规则管理的。

可以通过 iptables-save 命令打印出当前节点的 iptables 规则,因为输出较多,这里只截取与 httpd-svc Cluster IP 10.99.229.179 相关的信息:

技术分享图片

这两条规则的含义是:

  1. 如果 Cluster 内的 Pod(源地址来自 10.244.0.0/16)要访问 httpd-svc,则允许。

  2. 其他源地址访问 httpd-svc,跳转到规则 KUBE-SVC-RL3JAE4GN7VOGDGP

KUBE-SVC-RL3JAE4GN7VOGDGP 规则如下:

技术分享图片

  1. 1/3 的概率跳转到规则 KUBE-SEP-C5KB52P4BBJQ35PH

  2. 1/3 的概率(剩下 2/3 的一半)跳转到规则 KUBE-SEP-HGVKQQZZCF7RV4IT

  3. 1/3 的概率跳转到规则 KUBE-SEP-XE25WGVXLHEIRVO5

上面三个跳转的规则如下:

技术分享图片

即将请求分别转发到后端的三个 Pod。通过上面的分析,我们得到如下结论:

iptables 将访问 Service 的流量转发到后端 Pod,而且使用类似轮询的负载均衡策略

另外需要补充一点:Cluster 的每一个节点都配置了相同的 iptables 规则,这样就确保了整个 Cluster 都能够通过 Service 的 Cluster IP 访问 Service。

技术分享图片

除了直接通过 Cluster IP 访问到 Service,DNS 是更加便捷的方式,下一节我们讨论。

书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html

2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html

技术分享图片

docker的两类存储资源-每天5分钟玩转docker容器技术(38)

...理的镜像层和容器层。DataVolume。我们会详细讨论它们的原理和特性。storagedriver在前面镜像章节我们学习到Docker镜像的分层结构,简单回顾一下。650)this.width=650;"title="http://7xo6kd.com1.z0.glb.clouddn.c 查看详情

docker的两类存储资源-每天5分钟玩转docker容器技术(38)

...理的镜像层和容器层。DataVolume。我们会详细讨论它们的原理和特性。storagedriver在前面镜像章节我们学习到Docker镜像的分层结构,简单回顾一下。容器由最上面一个可写的容器层,以及若干只读的镜像层组成,容器的数据就存放... 查看详情

新书发布《每天5分钟玩转docker容器技术》

...版教程书籍的询问,今天终于可以给大家一个交代了。《每天5分钟玩转Docker容器技术》现已在各大书城上架。650)this.width=650;"title="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170925-1506345649234050183.png"src="http://7xo6kd 查看详情

data-packedvolumecontainer-每天5分钟玩转docker容器技术(43)

...然可以,通常我们称这种容器为data-packedvolumecontainer。其原理是将数据打包到镜像中,然后通过dockermanagedvolume共享。我们用下面的Dockfile构建镜像:650)this.width=650 查看详情

14《每天5分钟玩转docker容器技术》学习--一张图了解docker网络

查看详情

查看secret-每天5分钟玩转docker容器技术(156)

...Value反编码:下节学习如何在Pod中使用Secret。书籍:1.《每天5分钟玩转Kubernetes 查看详情

overlay如何实现跨主机通信?-每天5分钟玩转docker容器技术(52)

...运行了容器bbox1,今天将详细讨论overlay网络跨主机通信的原理。在host2中运行容器bbox2:bbox2IP为10.0.0.3,可以直接pingbbox1:可见overlay网络中的容器可以直接通信,同时docker也实现了DNS服务。下面我们讨论一下overlay网络的具体实现... 查看详情

overlay如何实现跨主机通信?-每天5分钟玩转docker容器技术(52)

上一节我们在host1中运行了容器bbox1,今天将详细讨论overlay网络跨主机通信的原理。在host2中运行容器bbox2:650)this.width=650;"title="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170808-1502161580025040298.png"src="http://7xo6 查看详情

prometheusoperator架构-每天5分钟玩转docker容器技术(178)

本节讨论PrometheusOperator的架构。因为PrometheusOperator是基于Prometheus的,我们需要先了解一下Prometheus。Prometheus架构Prometheus是一个非常优秀的监控工具。准确的说,应该是监控方案。Prometheus提供了数据搜集、存储、处理、可视化和... 查看详情

8《每天5分钟玩转docker容器技术》学习-docker命令infoversion

a) docker info 命令查看docker系统信息。docker info [OPTIONS]a) docker version 命令docker version :显示 Docker 版本信息。docker version [OPTIONS] 查看详情

回滚-每天5分钟玩转docker容器技术(141)

kubectlapply 每次更新应用时Kubernetes都会记录下当前的配置,保存为一个revision(版次),这样就可以回滚到某个特定revision。默认配置下,Kubernetes只会保留最近的几个revision,可以在Deployment配置文件中通过 revisionHistoryLimit&... 查看详情

创建machine-每天5分钟玩转docker容器技术(46)

对于DockerMachine来说术语 Machine 就是运行dockerdaemon的主机。“创建Machine”指的就是在host上安装和部署docker。先执行 docker-machinels 查看一下当前的machine650)this.width=650;"title="http://7xo6kd.com1.z0.glb.clouddn.com 查看详情

docker镜像小结-每天5分钟玩转docker容器技术(21)

本节我们对Docker镜像做个小结。这一部分我们首先讨论了镜像的分层结构,然后学习了如何构建镜像,最后实践使用DockerHub和本地registry。下面是镜像的常用操作子命令:images  显示镜像列表history 显示镜像构建历史com... 查看详情

docker镜像小结-每天5分钟玩转docker容器技术(21)

本节我们对Docker镜像做个小结。这一部分我们首先讨论了镜像的分层结构,然后学习了如何构建镜像,最后实践使用DockerHub和本地registry。下面是镜像的常用操作子命令:images  显示镜像列表history 显示镜像构建历史com... 查看详情

管理machine-每天5分钟玩转docker容器技术(47)

用 docker-machine 创建machine的过程很简洁,非常适合多主机环境。除此之外,DockerMachine也提供了一些子命令方便对machine进行管理。其中最常用的就是无需登录到machine就能执行docker相关操作。我们前面学过,要执行远程docker... 查看详情

dockermanagedvolume-每天5分钟玩转docker容器技术(40)

dockermanagedvolume与bindmount在使用上的最大区别是不需要指定mount源,指明mountpoint就行了。还是以httpd容器为例:我们通过 -v 告诉docker需要一个datavolume,并将其mount到/usr/local/apache2/htdocs。那么这个datavolume具体在哪儿呢?这... 查看详情

dockermanagedvolume-每天5分钟玩转docker容器技术(40)

dockermanagedvolume与bindmount在使用上的最大区别是不需要指定mount源,指明mountpoint就行了。还是以httpd容器为例:650)this.width=650;"title="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170711-1499779911753029146.png"s 查看详情

9《每天5分钟玩转docker容器技术》学习-docker命令之镜像仓库

a) Docker login/logout 命令docker login : 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hubdocker logout : 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官... 查看详情