在CSDN学Golang云原生(Kubernetes Service)

这篇具有很好参考价值的文章主要介绍了在CSDN学Golang云原生(Kubernetes Service)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一,service的定义与基本用法

在 Kubernetes 中,Service 是一种抽象概念,用于定义一组 Pod 并为它们提供访问入口。通过 Service,您可以将多个 Pod 组合成一个逻辑单元,并使用标签选择器来确定哪些 Pod 属于该 Service。

下面是一个简单的 Service 定义示例:

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app # 标签选择器,用于确定哪些 Pod 属于该 Service
  ports:
    - name: http
      port: 80 # 外部暴露的端口
      targetPort: 9376 # 绑定的 Pod 端口

在上面的示例中,我们创建了一个名为 my-service 的 Service,并指定了一个标签选择器 app=my-app 来确定哪些 Pod 属于该 Service。此外,我们还指定了一个绑定端口(端口号为 80),并将其绑定到后端 Pod 的某个端口(这里为 9376)。

使用此配置文件部署该服务后,Kubernetes 将自动创建一个负载均衡器,并分配给该服务一个稳定的 IP 地址和 DNS 名称。其他应用程序可以使用这个 IP 地址或 DNS 名称来访问该服务。

需要注意的是,在 Kubernetes 中,Service 可以有不同类型:ClusterIP、NodePort、LoadBalancer 和 ExternalName。每种类型都有不同的用途和配置方式。

下面是一些常见的 Service 使用示例:文章来源地址https://www.toymoban.com/news/detail-610663.html

  1. ClusterIP Service:将一组 Pod 组成一个逻辑单元,并在集群内部提供访问入口。
apiVersion: v1
kind: Service
metadata:
  name: my-service-clusterip
spec:
  selector:
    app: my-app # 标签选择器,用于确定哪些 Pod 属于该 Service
  ports:
    - name: http
      port: 80 # 外部暴露的端口
      targetPort: 9376 # 绑定的 Pod 端口
  1. NodePort Service:除了提供 ClusterIP Service 的功能外,还可以在每个节点上绑定一个静态端口号,从而允许外部流量进入 Kubernetes 集群。
apiVersion: v1
kind: Service
metadata:
  name: my-service-nodeport
spec:
  selector:
    app: my-app # 标签选择器,用于确定哪些 Pod 属于该 Service
  ports:
    - name: http
      port: 80 # 外部暴露的端口(在所有节点上都会监听此端口)
      targetPort: 9376 # 绑定的 Pod 端口(Pod 内容器监听此端口)
      nodePort: 30001 # 在每个节点上绑定的静态端口号(范围为:30000-32767)
  1. LoadBalancer Service:除了提供 NodePort Service 的功能外,还可以使用云供应商提供的负载均衡器来平衡流量,从而允许外部流量进入 Kubernetes 集群。
apiVersion: v1
kind: Service
metadata:
  name: my-service-loadbalancer
spec:
  selector:
    app: my-app # 标签选择器,用于确定哪些 Pod 属于该 Service
  ports:
    - name: http
      port: 80 # 外部暴露的端口(在所有节点上都会监听此端口)
      targetPort: 9376 # 绑定的 Pod 端口(Pod 内容器监听此端口)
  type: LoadBalancer # 指定为 LoadBalancer 类型的 Service
  1. ExternalName Service:将一个服务映射到集群外部的另一个服务或域名,从而允许集群内部使用相同的 DNS 名称来访问集群外部服务。
apiVersion: v1
kind: Service
metadata:
  name: my-service-externalname
spec

到了这里,关于在CSDN学Golang云原生(Kubernetes Service)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在CSDN学Golang云原生(Kubernetes集群管理)

    在 Kubernetes 集群中,Node 的隔离与恢复通常可以通过以下方式实现: 使用 Taints 和 Tolerations 实现隔离 Taints 和 Tolerations 是 Kubernetes 中用于节点调度的机制。通过给节点添加 taints(污点),可以让节点拒绝某些特定的 Pod 调度。而对于需要运行在这些节点上的 Pod,我们需要在

    2024年02月15日
    浏览(42)
  • 在CSDN学Golang云原生(Kubernetes Pod)

    在 Kubernetes 中,Pod 是最小的可部署单元,它包含一个或多个容器。使用 Golang 来定义和操作 Pod 时,需要使用 kubernetes/client-go 包提供的 API。 以下是 Golang 定义和基本用法 Pod 的示例: 安装 kubernetes/client-go 包 在 Golang 环境中安装 kubernetes/client-go 包,该包提供了访问 Kubernetes

    2024年02月15日
    浏览(41)
  • 在CSDN学Golang云原生(Kubernetes Pod调度)

    在 Kubernetes 中,可以使用 NodeSelector 字段来指定 Pod 调度到哪些节点上运行。NodeSelector 是一个键值对的 map,其中键是节点的标签名,值是标签值。具体步骤如下: 在节点上添加标签 首先需要在节点上添加相应的标签,例如: 编写 Pod 的 YAML 文件 在编写 Pod 的 YAML 文件时,需

    2024年02月15日
    浏览(41)
  • 在CSDN学Golang云原生(Kubernetes Pod无状态部署)

    Kubernetes中的Pod是可以动态创建、销毁的,如果希望Pod只使用静态的IP地址而不是自动生成一个IP地址,那么就需要使用静态Pod。 静态Pod是在kubelet启动时通过指定文件夹路径来加载的。当kubelet检测到这些配置文件变化后,它会创建或删除相应的Pod,这样就可以轻松地部署静态

    2024年02月15日
    浏览(57)
  • 在CSDN学Golang云原生(Kubernetes Pod 有状态部署)

    Kubernetes StatefulSet 是 Kubernetes 中的一种资源类型,它能够保证有状态服务(Stateful Service)的唯一性和顺序部署,适用于需要持久化存储、网络标识、状态管理等场景。MongoDB 是一个非常流行的 NoSQL 数据库,下面我们介绍如何使用 Kubernetes StatefulSet 部署 MongoDB 集群。 创建一个

    2024年02月15日
    浏览(51)
  • 在CSDN学Golang云原生(Kubernetes声明式资源管理Kustomize)

    在 Kubernetes 中,我们可以通过 YAML 或 JSON 文件来定义和创建各种资源对象,例如 Pod、Service、Deployment 等。下面是一个简单的 YAML 文件示例,用于创建一个 Nginx Pod: 该文件包含了以下信息: apiVersion :指定 Kubernetes API 的版本。 kind :指定资源类型,这里为 Pod。 metadata :定义

    2024年02月15日
    浏览(38)
  • 在CSDN学Golang云原生(Docker镜像)

    在 Docker 中,一个镜像可以由多个分层(Layer)组成。每个分层都表示一些修改或添加到上一个分层的文件系统差异。 Golang 在构建 Docker 镜像时也支持类似的机制,通过  docker build  命令来创建一个包含多个分层的镜像。 具体实现方式是在 Dockerfile 中使用  RUN 、 ADD 、 COPY  

    2024年02月15日
    浏览(85)
  • 在CSDN学Golang云原生(Docker基础)

    要在golang中使用Docker,需要先安装并配置好Docker。下面是基本的Docker安装和配置步骤: 下载并安装Docker 官方下载地址:https://docs.docker.com/get-docker/ 根据你的操作系统选择对应版本的Docker,并按照官方文档进行安装。 配置Docker 在Linux环境下,可以使用以下命令启动Docker服务:

    2024年02月15日
    浏览(38)
  • 在CSDN学Golang云原生(Docker容器)

    在Go语言中,可以通过调用Docker命令行工具来进行容器管理和操作。下面是一些基本的Docker命令行操作示例: 启动一个新容器 这里使用了 docker run 命令来启动一个新的Nginx容器,并将其后台运行。 停止一个正在运行的容器 这里使用了 docker stop 命令来停止名为“my-nginx-contai

    2024年02月15日
    浏览(46)
  • 在CSDN学Golang云原生(服务网格istio)

    在Kubernetes上部署istio,可以按照以下步骤进行: 安装Istio 使用以下命令从Istio官网下载最新版本的Istio: 其中, VERSION 是要安装的Istio版本号。 将下载的文件解压到本地目录: 进入解压后的目录: 然后,安装Istio CRDs(Custom Resource Definitions): 最后,安装Istio组件和示例应用

    2024年02月15日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包