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

衡水做wap网站百度一下你就知道官网网页版

衡水做wap网站,百度一下你就知道官网网页版,网站开发教程视频百度云资源,德州极速网站建设 小程序一、Service介绍 在 kubernetes 中, pod 是应用程序的载体,我们可以通过 pod 的 ip 来访问应用程序,但是 pod 的 ip 地址不是固定的,这也就意味着不方便直接采用pod 的 ip 对服务进行访问。 为了解决这个问题,kuberne…

一、Service介绍

kubernetes 中, pod 是应用程序的载体,我们可以通过 pod ip 来访问应用程序,但是 pod ip 地址不是固定的,这也就意味着不方便直接采用pod ip 对服务进行访问。
为了解决这个问题,kubernetes 提供了 Service 资源, Service 会对提供同一个服务的多个 pod 进行聚合,并且提供一个统一的入口地址 通过访问Service的入口地址就能访问到后面的pod服务
Service 在很多情况下只是一个概念,真正起作用的其实是 kube-proxy 服务进程,每个 Node 节点上都运行着一个kube-proxy 服务进程。当创建 Service 的时候会通过 api-server etcd 写入创建的 service 的信息,而kube-proxy 会基于监听的机制发现这种 Service 的变动,然后 它会将最新的 Service 信息转换成对 应的访问规则

Service 是 Kubernetes 中用于定义一组 Pod 的逻辑集合及其访问策略的抽象。主要解决以下问题:

  • 服务发现:动态 Pod 环境下,如何找到其他服务。

  • 负载均衡:将流量均匀分发到多个 Pod 实例。

  • 解耦访问:客户端无需关心 Pod 的具体 IP 或节点位置。

  • 稳定访问端点:Pod 可能频繁重建,Service 提供固定访问入口(ClusterIP/DNS)。

二、Service的核心原理

1、kube-proxy:负责实现 Service 的流量转发,支持以下模式:

  • iptables(默认):通过 iptables 规则转发流量。

  • IPVS:高性能模式,基于内核的 IPVS 负载均衡。

  • userspace(已弃用):用户空间代理。

2、Endpoints:Service 通过标签选择器(Selector)动态维护后端 Pod 的 IP 列表(Endpoints 对象)。

3、EndpointSlice:替代 Endpoints 的扩展机制,支持更大规模的服务(分片存储 Endpoint 信息)。

三、Service常见的三种类型

Service的资源清单文件:

kind: Service # 资源类型
apiVersion: v1 # 资源版本
metadata: # 元数据
name: service # 资源名称
namespace: dev # 命名空间
spec: # 描述
selector: # 标签选择器,用于确定当前service代理哪些pod
app: nginx
type: # Service类型,指定service的访问方式
clusterIP: # 虚拟服务的ip地址
sessionAffinity: # session亲和性,支持ClientIP、None两个选项
ports: # 端口信息
- protocol: TCP
port: 3017 # service端口
targetPort: 5003 # pod端口
nodePort: 31122 # 主机端口

实验环境准备:

创建一个deployment.yaml文件,内容如下:

[root@k8s-master test]# cat deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: pc-deploymentnamespace: dev
spec:replicas: 3selector:matchLabels:app: nginx-podtemplate:metadata:labels:app: nginx-podspec:containers:- name: nginximage: nginx:1.17.1ports:- containerPort: 80
#创建
[root@k8s-master test]# kubectl create -f deployment.yaml
#查看详情
[root@k8s-master test]# # kubectl get pods -n dev -o wide
NAME                            READY   STATUS    RESTARTS   AGE   IP              NODE         NOMINATED NODE   READINESS GATES
pc-deployment-575f6f4ff-7p8hs   1/1     Running   0          36m   100.125.152.6   k8s-node02   <none>           <none>
pc-deployment-575f6f4ff-lhqj4   1/1     Running   0          36m   100.97.125.7    k8s-node01   <none>           <none>
pc-deployment-575f6f4ff-mvnrp   1/1     Running   0          36m   100.97.125.8    k8s-node01   <none>           <none>#为了后面的测试,修改三台nginx的index.html页面(三台修改的IP地址不一样)
kubectl exec -it pc-deployment-575f6f4ff-7p8hs -n dev /bin/sh
# echo "`hostname`" > /usr/share/nginx/html/index.html

 修改完毕,访问测试:

1、ClusterIP

默认类型,为集群内部提供访问的虚拟 IP仅在集群内可访问

Kubernetes 中 Deployment 仅管理 Pod 副本,需通过 Service 暴露 Pod 服务,否则外部无法访问。

如果写yaml不太熟练的话,可以执行以下命令导入一个文件中:

[root@k8s-master test]# kubectl create service clusterip nginx-svc1 --tcp=80:80 -n dev --dry-run=client -o yaml > service-clusterip.yaml

创建 service-clusterip.yaml 文件:
[root@k8s-master test]# cat service-clusterip.yaml
apiVersion: v1
kind: Service
metadata:name: service-clusteripnamespace: dev
spec:selector:app: nginx-podclusterIP: 10.96.1.100 # service的ip地址,如果不写(删掉),就会默认生成一个IP地址type: ClusterIPports:- port: 80 # Service端口targetPort: 80 # pod端口
# 创建 service
[root@k8s-master test]# kubectl create -f service-clusterip.yaml
service / service-clusterip created
# 查看 service
[root@k8s-master test]# kubectl get svc -n dev -o wide
NAME                TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)   AGE   SELECTOR
service-clusterip   ClusterIP  
10.96.1.100   <none>        80/TCP    2s    app=nginx-pod

2、NodePort

在 ClusterIP 基础上,在每个节点上开放一个静态端口(NodeIP:NodePort)

创建 service-nodeport.yam:
[root@k8s-master test]# cat service-nodeport.yaml
apiVersion: v1
kind: Service
metadata:name: service-nodeportnamespace: dev
spec:selector:app: nginx-podtype: NodePortports:- port: 80 # Service端口nodePort: 30002targetPort: 80 # pod端口

# 创建service
[root@master ~]# kubectl create -f service-nodeport.yaml
service/service-nodeport created
# 查看service
[root@master ~]# kubectl get svc -n dev -o wide
NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE     SELECTOR
service-headliness   ClusterIP   None         <none>        80/TCP         9m10s   app=nginx-pod
service-nodeport     NodePort    10.96.1.99   <none>        80:30002/TCP   18s     app=nginx-pod

# 接下来可以通过电脑主机的浏览器去访问集群中任意一个nodeip30002端口,即可访问到pod 

3、LoadBalancer

通过云提供商的负载均衡器(如 AWS ELB、GCP LB)暴露服务到外部。

LoadBalancer和NodePort很相似,目的都是向外部暴露一个端口,区别在于LoadBalancer在集群的外部再来做一个负载均衡设备,而这个设备需要外部环境支持的,外部服务发送到这个设备上的请求,会被设备负载之后转发到集群中。

不分配 ClusterIP,直接访问 Pod 的 IP 或通过 DNS 解析,客户端需要自行实现负载均衡。

 三款开源 Kubernetes 负载均衡器: MetalLB vs PureLB vs OpenELB

apiVersion: v1
kind: Service
metadata:name: my-loadbalancer-service
spec:type: LoadBalancerselector:app: my-appports:- protocol: TCPport: 80targetPort: 8080externalTrafficPolicy: Local  # 保留客户端源 IP(默认是 Cluster)

http://www.dtcms.com/wzjs/220700.html

相关文章:

  • 厦门网站推广引擎seo优
  • 主流建站cms独立站
  • 高清做网站插图手机关键词排名优化
  • 北京网站seo外包济南seo网站排名优化工具
  • 自营购物网站建设如何做网销
  • 重庆专业网站建设公司哪家好快照网站
  • 对网站建设和维护好学吗百度首页排名优化哪家专业
  • 深圳专业网站建设服务竞价托管收费标准
  • 郑州建设网站推广公司三只松鼠的软文范例
  • wordpress新用户站点搜索引擎优化搜索优化
  • 嘉峪关市建设局建管科网站sem竞价是什么意思
  • 杭州定制网站公司百度seo培训班
  • 淘宝客网站哪个好百度注册
  • 北京企业网站推广价格中央电视台一套广告价目表
  • 选片 网站 建设sem招聘
  • 做模板网站的利与弊百度关键词热度查询
  • 做网站需要视频衔接怎么做小程序开发哪家更靠谱
  • wordpress数据库配置seo 服务
  • 西安推广公司无网不胜seowhy教研室
  • 聊城做网站的搜索指数的数据来源
  • 自己可以做网站放在百度上面嘛360推广平台登录入口
  • 课程网站建设技术谷歌seo排名工具
  • 同里做网站今日热搜前十名
  • 做网站时空间的选择广州seo公司哪个比较好
  • 全球网站建设品牌网站建成后应该如何推广
  • 下载百度导航最新版本太原seo优化公司
  • wordpress js 代码seo搜索优化费用
  • 电话用网站做综合布线现在做网络推广都有什么方式
  • 网站加入百度广告联盟成都最好的seo外包
  • 宽带维修北京自动seo