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

和文化有关的吉网站建设模板中企动力企业邮箱登陆首页

和文化有关的吉网站建设模板,中企动力企业邮箱登陆首页,app可以申请专利吗,公司介绍文案Service 概念与实战 1.通过 Service 向外部暴露 Pod2.Service 的多端口设置3.集群内部的 DNS 服务4.无头 Service 在 Kubernetes 中部署的应用可能对应一个或者多个 Pod#xff0c;而每个 Pod 又具有独立的 IP 地址。Service#xff08;服务#xff09;能够为一组功能相同的… Service 概念与实战 1.通过 Service 向外部暴露 Pod2.Service 的多端口设置3.集群内部的 DNS 服务4.无头 Service 在 Kubernetes 中部署的应用可能对应一个或者多个 Pod而每个 Pod 又具有独立的 IP 地址。Service服务能够为一组功能相同的 Pod 提供统一不变的访问地址使得集群具有稳定的 IP 地址即 Cluster IP 地址从而使在集群内部能够通过该 Cluster IP 地址将客户端请求路由到集群中的一个 Pod 上从而实现客户端与 Pod 的通信。 Service 是 Kubernetes 中非常重要的组成部分它主要为集群提供 请求的负载均衡 和 Pod 的自动发现 功能。 Service 主要有以下两个作用 Pod 的自动发现通过标签 Label 与 Pod 关联实现与 Pod 的通信。请求的负载均衡提供不同的访问策略以实现访问 Pod 请求的负载均衡。 1.通过 Service 向外部暴露 Pod 创建 Service 与创建应用的 Pod可以被定义在同一个 YAML 文件中也可以将它们在不同 YAML 文件中分开定义。下面通过使用两个 YAML 文件来分别定义 Service 和 Pod。 使用 Deployment 控制器来部署应用创建文件 service-demo1.yaml并在其中输入以下内容。 apiVersion: apps/v1 kind: Deployment metadata:labels:app: nginx name: nginx spec:replicas: 3 selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginxname: nginximagePullPolicy: IfNotPresent使用 kubectl apply 命令部署应用。 kubectl apply -f service-demo1.yaml查看 Pod 的信息。 kubectl get pod -o wide输出的信息如下 创建 Service编辑文件 service-demo2.yaml在其中输入以下内容。 apiVersion: v1 kind: Service metadata:name: service-demo2namespace: default spec:# 这里使用 NodePort 类型的 Service 将应用程序暴露给外部type: NodePort ports:- name: httpport: 80protocol: TCPtargetPort: 80# 定义标签选择器将服务 Service 与匹配便签的一组 Pod 关联起来selector: app: nginx使用 kubectl apply 命令创建 Service。 kubectl apply -f service-demo2.yaml查看 Pod、Service 和 Endpoint 的信息。 kubectl get pods,service,endpoints -o wide kubectl get pods,svc,ep -o wide输出的信息如下 从输出的信息可以看出在创建 Service 时会自动创建应用的接入点 Endpoint并将每个 Pod 的 IP 地址自动加入 Endpoint 中。Endpoint 也会自动感知后端 Pod 的 IP 地址从而实现动态的负载均衡。 Kubernetes Endpoint 是一个 Kubernetes API 对象‌它表示一个 Service 的后端集合用于将流量从 Service 引导到实际运行应用程序的 Pod。‌这个对象包含一组 IP 地址和端口号的列表‌这些 IP 地址和端口号对应于 Service 后端 Pod 的网络终点。‌当创建一个 Service 时‌Kubernetes 会自动创建与之关联的 Endpoints 对象‌并将 Service 的后端 Pod 的 IP 地址和端口号添加到 Endpoints 对象中。‌Endpoints 对象会根据 Service 的选择器自动选择与之关联的 Pod。‌当 Pod 的 IP 地址或端口号发生变化时‌Kubernetes 会自动更新 Endpoints 对象‌确保 Service 能够正确路由到后端 Pod。‌通过访问 Service 的 Cluster IP‌可以从集群内部访问 Service‌而通过访问 Service 的 Endpoints‌可以直接访问 Service 的后端 Pod。‌ 简单来说‌Kubernetes Endpoint 是 Kubernetes 系统中用于描述 Service 后端 Pod 的网络终点信息的对象‌它确保了 Service 能够高效地路由到正确的后端 Pod‌从而实现服务的可用性和可扩展性。‌ 访问任意节点的 31767 端口都可以访问应用。 2.Service 的多端口设置 在 service-demo2.yaml 文件中定义的 Service 只暴露了一个端口但在很多情况下需要 Service 暴露多个端口例如同时暴露 HTTP 端口和 HTTPS 端口。Kubernetes 允许在定义 Service 时指定多个端口但每个端口必须指定一个唯一的名称以避免产生歧义。 下面是 Kubernetes 官方提供的一个示例。 apiVersion: v1 kind: Service metadata:name: my-service spec:selector:app: MyAppports:- name: httpprotocol: TCPport: 80targetPort: 9376- name: httpsprotocol: TCPport: 443targetPort: 93773.集群内部的 DNS 服务 Service 在实现请求代理和负载均衡时默认采用的是 Cluster IP 地址。但是 Cluster IP 地址不是永远不变的因此建议在应用中不要使用 Cluster IP 地址而使用 Service 的名称。Kubernetes 集群提供的 DNS 服务可以将 Service 的名称解析为 Cluster IP 地址。 下面对 Kubernetes 集群内部的 DNS 服务 进行一个简单的验证。 查看系统命名空间中的 Pod。 kubectl get pods -n kube-system | grep dns输出的信息如下 在 kube-system 的命名空间中自动启动了 Pod 来运行 DNS 服务。 创建 Service。 kubectl apply -f service-demo2.yaml输出的信息如下: 使用 busybox 的 1.28.4 版本创建一个 Pod并进入 Pod 的内部。 kubectl run -it --imagebusybox:1.28.4 --rm --restartNever sh在 busybox 的 Pod 中查找 service-demo2 服务集群内部的 DNS 服务将返回 Service 的域名信息。 nslookup service-demo2这里的 10.100.69.136 就是 Service service-demo2 对应的 Cluster IP。 nslookup 命令可以从 本地 DNS 服务器 中查看所有的 IP 地址和域名 信息它就像一本互联网电话簿。 4.无头 Service 每一个 Service 都会有一个 Service 名称并最终由 DNS 解析成 Cluster IP 地址。连接到 Service 的客户端最终通过 Cluster IP 地址被转发到后端一个随机选择的 Pod 上。因此这时客户端并不清楚后端 Pod 的 IP 地址。但是对于一些有状态的客户端来说需要清楚地知道后端每个 Pod 的 IP 地址才能与其直接进行通信。这时就需要使用无头 ServiceHeadless Service。 无头 Service 的运行机制核心是去掉了 DNS 解析 Cluster IP 地址这个过程直接返回后端 Pod 的 IP 地址。 创建部署描述文件 headless-service.yaml并在其中输入以下内容。 apiVersion: v1 kind: Service metadata:name: headless-service spec:selector:name: busybox# 设置为无头服务 Service clusterIP: Noneports:- name: demo port: 1234targetPort: 1234 --- apiVersion: v1 kind: Pod metadata:name: headless-service-pod-1labels:name: busybox spec:hostname: headless-service-pod-1containers:- image: busyboxcommand:- sleep- 3600name: busybox --- apiVersion: v1 kind: Pod metadata:name: headless-service-pod-2labels:name: busybox spec:hostname: headless-service-pod-2containers:- image: busyboxcommand:- sleep- 3600name: busybox执行 kubectl apply -f 命令。 kubectl apply -f headless-service.yaml查看 Service 和 Pod 的信息。 kubectl get svc,pod -o wide输出的信息如下 可以看到service/headless-service 的 Cluster IP 的值是 None即这是一个无头 Service在它的后面有两个 Pod以及每个 Pod 实际的 IP 地址。 使用 kubectl exec 命令进入其中一个 Pod 内部。 kubectl exec pod/headless-service-pod-1 -it /bin/sh在 Pod 内部查看所使用的 DNS 服务器信息也可以用 nslookup headless-service 查询。 more /etc/resolv.conf输出的信息如下 在这里可以看到使用的 DNS 服务器的 IP 地址是 10.96.0.10。 search配置的是集群的域名后缀。nameserver配置的是 kube-dns 服务的 IP 地址。 那么这些配置从哪里来的呢kubelet 的启动的配置文件 --config/var/lib/kubelet/config.yaml 中有两个参数分别用于指定域名服务的 IP 和集群域名。kubelet 在创建容器时才可以将这些配置传入进去。 在宿主机上使用 dig 命令访问无头 Service。 dig 10.96.0.10 headless-service.default.svc.cluster.local输出的信息如下 可以看到在 ANSWER SECTION 中直接返回了后端两个 Pod 的 IP 地址。
http://www.w-s-a.com/news/161406/

相关文章:

  • 哪个网站做中高端衣服建设自己网站的流程
  • 网站建设概况做网站的是怎么赚钱的
  • 网站发布信息的基本流程现在都不用dw做网站了吗
  • 赣州热门网站深圳龙岗做网站的公司
  • 中国最大的建站平台广告传媒公司取名
  • 深圳网站设计公司专业吗学动漫设计后悔死了
  • 企业网站形象建设网站开发入职转正申请书
  • 网站设计步骤济南建设网中标公告
  • 石佛营网站建设wordpress关健词
  • 您的网站空间即将过期建站 discuz
  • 上海简站商贸有限公司福州哪家专业网站设计制作最好
  • 博客网站开发流程苏州专业做网站的公司哪家好
  • 四川手机网站建设西安 网站 高端 公司
  • 织梦大气绿色大气农业能源化工机械产品企业网站源码模版建筑工程知识零基础
  • 广州番禺网站公司v2017网站开发
  • 微信公众号怎么做微网站wordpress和dz
  • 西部数码网站管理助手 301福州搜索优化实力
  • 响应式网站介绍页面模板功能找不到
  • 公司网站如何seo自己做资讯网站
  • 天津网站建设软件开发招聘企业信用信息查询公示系统上海
  • 网站备案中做正品的网站
  • 网站建设0基础学起青海企业网站开发定制
  • 网站定制项目上海快速建站
  • 大型视频网站建设方案东莞企业网站建设开发
  • 西安php网站制作可以用AI做网站上的图吗
  • 网站开发工程师和前端企业网络推广公司
  • 泉州开发网站的公司有哪些电脑网页翻译
  • 河北省建设机械会网站首页刚做的网站怎么收录
  • 什么网站专门做自由行的framework7做网站
  • 网页设计与网站建设书籍包头住房与城乡建设局网站