首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏无量测试之道

    K8s服务编排

    前置说明: k8s_host=192.168.214.50 //定义k8s_host变量,此ip为k8s管理机 yaml_host=192.168.214.100:9999 //相关服务的配置存放机 的管理机上,为服务生成service服务代理 ''' k8s分配给Service一个固定IP,这是一个虚拟IP(也称为ClusterIP),并不是一个真实存在的IP,而是由k8s虚拟出来的。 在k8s系统中,实际上是由k8s Proxy组件负责实现虚拟IP路由和转发的,所以k8s Node中都必须运行了k8s Proxy,从而在容器覆盖网络之上又实现了k8s层级的虚拟转发网络。 做服务部署到K8s集群中去 jenkins_job: 编译代码并生成镜像,且上传到镜像仓库 ---- namespace='test'  //定义一个变量 mvn clean install -DskipTests tail -f /var/log/yum.log //打印日志,表明服务是存活的 '> .

    58120编辑于 2022-07-04
  • 来自专栏桃子小白

    k8s】service服务和job服务

    Service服务发现 使用Service 使用Service实验使用的目录病创建后端的httpd-Dy [root@master servicefile]# vim httpd-dy.yaml kind 创建httpd-service.yaml文件 [root@master servicefile]# vim httpd-service.yaml 创建service并查看该信息(下kubernetes服务是系统服务 ) 测试服务可用性,通过curl命令查看服务是否正常 [root@master servicefile]# curl 10.102.124.67:8080 可以删除刚刚创建的服务 创建httpd-expose.yaml     - sleep 30000 创建并进入Pod命令行 [root@master servicefile]# kubectl apply -f client.yaml 使用nslookup命令查看服务域名 ,wget命令通过域名访问服务 实训任务 创建deployment1 要求: 2 副本,镜像类型 httpd 创建deployment2 要求: 3副本,镜像类型 httpd 创建 service1

    60320编辑于 2023-06-10
  • 来自专栏容器云实践

    prometheus k8s服务发现

    同样在Prometheus监控中存在一个叫 服务发现的机制,在k8s容器环境中由于集群内实例网络地址是动态的,我们不可能每次创建或修改实例都将实例IP写入Prometheus的target中,借助 服务发现我们可以快速的将集群内的资源注册到 服务发现 gcesdconfigs: GCE 服务发现 ec2sdconfigs: EC2 服务发现 openstacksdconfigs: OpenStack 服务发现 azuresdconfigs Prometheus中k8s服务发现的原理是通过 Kubernetes 的REST API 检索抓取目标,并始终与集群状态保持同步。 所以我们需要配置Kubernetessdconfigs来访问K8s API 比如我们要抓取k8s ingress,需要为Prometheus指定用于RBAC认证证书和serviceaccount的token 以上通过kubernetes-apiservers、kubernetes-nodes的实例简单介绍了Prometheus中如何实现k8s集群资源的服务发现以及相应的配置和操作。

    2.2K30编辑于 2022-03-14
  • 来自专栏日常笔记

    K8S 服务暴露方式

    NodePort NodePort在kubenretes里是一个广泛应用的服务暴露方式。 这种服务暴露方式,无法让你指定自己想要的应用常用端口,不过可以在集群上再部署一个反向代理作为流量入口。 LoadBalancer LoadBalancer 只能在service上定义。 S) AGE influxdb 10.97.121.42 10.13.242.236 8086:30051/TCP 39s 内部可以使用ClusterIP加端口来访问服务 外部可以用以下两种方式访问该服务: 使用任一节点的IP加30051端口访问该服务 使用EXTERNAL-IP来访问,这是一个VIP,是云供应商提供的负载均衡器IP,如10.13.242.236:8086 总结 总的来说Ingress是一个非常灵活和越来越得到厂商支持的服务暴露方式,包括Nginx、HAProxy、Traefik,还有各种Service Mesh,而其它服务暴露方式可以更适用于服务调试、特殊应用的部署

    3.6K50发布于 2020-06-02
  • 来自专栏灰子学技术

    K8S服务注册

    本文主要用来介绍K8S服务注册和发现,算是笔者对这部分知识的一个学习笔记。 一、服务注册 每个 Kubernetes 服务都会自动注册到集群 DNS 之中。 备注: Kubernetes 使用 DNS 作为服务注册表。 为了满足这一需要,每个 Kubernetes 集群都会在 kube-system 命名空间中用 Pod 的形式运行一个 DNS 服务,通常称之为集群 DNS。 DNS 中注册的名称就是 metadata.name,而 ClusterIP 则由 Kubernetes 自行分配,参考下面的例子: 二、服务发现 第一步:服务获取ClusterIP 要使用服务发现功能 假设它们本地的 DNS 解析缓存中没有这个记录,则需要把查询提交到集群 DNS 服务器,会得到对应服务的 ClusterIP(VIP)不过此时的IP是一个虚IP,需要通过后面的Service Network

    2.6K30发布于 2021-09-22
  • 来自专栏知了一笑

    K8S | Service服务发现

    服务发现与负载均衡。 一、背景 在微服务架构中,这里以开发环境「Dev」为基础来描述,在K8S集群中通常会开放:路由网关、注册中心、配置中心等相关服务,可以被集群外部访问; 对于测试「Tes」环境或者生产「Pro」环境,出于安全或者环境隔离性来考虑 ,在正常情况下只会开放网关服务,而「注册、配置」中心并不会对外暴露; 对于架构中的其它业务服务一般不会对外开放,在K8S集群内部服务间是可以正常通信的,对于「Dev」环境来说,研发会使用「注册、配置」中心 ,网关是系统的访问入口; 在K8S集群中,通过Service组件,可以快速简单的实现服务发现和负载均衡; 二、Service组件 1、简介 在K8S集群中是通过Pod组件来部署应用服务,Deployment 这里提供一个简单的【Service】语法做参考; 需要注意的是:在该脚本中没有指定服务类型即ServiceType,默认采用的是ClusterIP,通过集群的内部IP暴露服务,选择该值时服务只能够在集群内部访问

    48230编辑于 2023-09-01
  • 来自专栏架构师成长之路

    k8s实践(12)--K8s service服务详解

    1、Service定义服务入口: 即k8s的Service定义了一个服务的访问入口地址,前端的应用通过这个入口地址访问其背后的一组由Pod副本组成的集群实例,来自外部的访问请求被负载均衡到后端的各个容器应用上 八、集群的服务分类 在K8S运行的服务,从简单到复杂可以分成三类:无状态服务、普通有状态服务和有状态集群服务。下面分别来看K8S是如何运行这三类服务的。 K8S为此开发了一套以StatefulSet(1.5版本之前叫做PetSet)为核心的全新特性,方便了有状态集群服务K8S上的部署和管理。 九(二)、集群服务的存储:K8S的存储系统 ---- K8S的存储系统从基础到高级又大致分为三个层次:普通Volume,Persistent Volume 和动态存储供应。 第二种类型是跨节点存储卷,这种存储卷不和某个具体的K8S节点绑定,而是独立于K8S节点存在的,整个存储集群和K8S集群是两个集群,相互独立。

    11.3K26编辑于 2022-04-14
  • 来自专栏桃子小白

    k8s】将Go服务上传到k8s

    将Go服务发布到k8s集群 首先安装go环境 下载go的tar.gz包 然后下载到虚拟机中,并且解压到/usr/local/src中 //解压缩go包 [root@master ~]# tar -zxf 打包镜像,传到k8s工作节点 [root@master 0607tz]# docker save -o k8sdemo.tar.gz taozheng/k8sdemo:v1 [root@master           path: /           port: 8080         initialDelaySeconds: 10         timeoutSeconds: 2 创建go的服务 name: api     port: 8080     protocol: TCP     targetPort: 8080 selector:   app: k8s-demo k8s 部署 查看pod和服务信息 修改svc的type类型变成nodePort [root@master 0607tz]# kubectl edit svc k8s-demo-svc 保存后再次查看,已经修改成功

    52840编辑于 2023-06-10
  • 来自专栏仙士可博客

    k8s学习六-k8s部署go服务

    go代码 写一个最简单的http服务器: package main import (    "flag"    "github.com/gin-gonic/gin"    "net/http"     test % curl 127.0.0.1:8080 This is version:v1 running in pod appledeMacBook-Pro.local% dockerfile 编写go服务的 tioncico/go:v1.0.1  # 增加tag docker push tioncico/go:v1.0.1 # 上传到docker hub 此时,在dockerhub上,即可看到编译好的镜像: 编写k8s       protocol: TCP       port: 8080       targetPort: 8080       nodePort: 30080   type: NodePort k8s 在上面的教程中可以看到,我们先将镜像放到了docker hub,才开始进行k8s部署,这样相当于把自己的项目放到了公共的仓库,十分不安全 原因是: k8s有多个节点,如果我们只在一个节点编译镜像,其他节点就无法获取到这个自己编译后的镜像

    1.3K20编辑于 2022-09-13
  • 来自专栏小陈运维

    k8s的无头服务

    k8s的无头服务Headless Services是一种特殊的service,其spec:clusterIP表示为None,这样在实际运行时就不会被分配ClusterIP,也被称为无头服务,通过DNS解析提供服务发现 这种服务使得直接访问单个Pod成为可能,而不经过负载均衡器。 因为 Headless Service 属于 Service ClusterIp 类型,所以在讲解Headless Service前,先简单说下 Service 和服务发现。 Servicemetadata: name: nginx labels: app: nginxspec: ports: - port: 80 name: web clusterIP: None #这使得服务成为无头服务 如果想让部署的有状态应用暴露给集群外部客户端访问的话,可以新建个普通(有ClusterIP)的服务,通过标签选择关联有状态服务实例。

    36510编辑于 2024-11-17
  • 来自专栏日常笔记

    Spring cloud k8s 服务发现

    spring-cloud-kubernetes 在K8s集群中,没有必要拥有Eureka。K8s中的ETCD拥有所有必要的信息。 您的应用程序将通过指定的K8s服务名称联系K8s API服务器以获取端点信息。 然后可以通过Feign调用返回的服务。 要让DiscoveryClient正常运行,您需要做的 就是将Kubernetes服务名称与spring.application.name属性对齐。

    77250发布于 2020-06-02
  • 来自专栏运维小路

    Kubernetes(k8s)-服务(Service)介绍

    k8s就给我们抽象一个资源叫做服务Service,简称svc,我们通过访问svc,然后来实现负载均衡访问多个后端,并且还能随着pod的增加或者减少自动调整后端rs。 Service基本概念 在Kubernetes (k8s) 中,Service是一个抽象概念,它定义了一种访问和暴露一组运行在Pods中的应用的方法。 其中port:80是服务的端口,targetPort: 80是容器的80端口。 但是如果我们没有相匹配的标签的pod,则这个时候svc是无法被访问的,因为它没有对应的后端。

    1.6K10编辑于 2025-01-08
  • 来自专栏Kubernetes

    K8s】Kubernetes 服务调度详解

    如果您有其他想要了解的,欢迎私信联系我~ 基本介绍 在 Kubernetes 中,服务调度是指 kube-scheduler 组件根据特定的调度算法和策略,将 Pod 分配到最合适的 Node 节点上,

    62310编辑于 2024-09-02
  • 来自专栏正则

    K8s上部署Go服务

    通过Rancher一键部署k8s服务 地址: https://rancher.com/quick-start/ 命令 sudo docker run --privileged -d --restart ,我不能使用这个集群 点击添加集群,自定义一通默认到最后给你一个docker命令执行后我们就又得到一个自定义的k8s集群了(弄一个单节点集群的话最后一步把3个都要勾选上) 下载kubectl https 集群部署IP:30080 就可以看到熟悉的 nginx 欢迎界面了 在k8s中部署 golang 服务 代码 package main import "net/http" func main() { 运行服务 app.yml apiVersion: apps/v1 kind: Deployment metadata: name: app-deployment labels: app: 集群部署IP:31080/k8s 正常输出结果(hello world k8s) 部署完成

    98931编辑于 2022-03-17
  • 来自专栏匿名用户的日记

    k8s 跨 namespace 访问服务

    K8S中,同一个命名空间(namespace)下的服务之间调用,之间通过服务名(service name)调用即可。 不过在更多时候,我们可能会将一些服务单独隔离在一个命名空间中(比如我们将中间件服务统一放在 middleware 命名空间中,将业务服务放在 business 命名空间中)。 遇到这种情况,我们就需要跨命名空间访问,K8S 对service 提供了四种不同的类型,针对这个问题我们选用 ExternalName 类型的 service 即可。 k8s service 分为四种类型 分别为: ClusterIp(默认类型,每个Node分配一个集群内部的Ip,内部可以互相访问,外部无法访问集群内部) NodePort(基于ClusterIp,另外在每个 要收费的,一般由云服务商提供,比如阿里云、AWS等均提供这种服务) ExternalName(将外部地址经过集群内部的再一次封装,实际上就是集群DNS服务器将CNAME解析到了外部地址上,实现了集群内部访问

    2.7K20编辑于 2021-12-14
  • 来自专栏Java升级打怪进阶之路

    【云原生】容器服务K8s版)使用 Kubectl 部署 web 服务K8s 集群

    使用 K8s 的原生命令 kubectl部署一个web应用的镜像到 k8s 集群中,并通过 Ingress 将部署的服务暴露出来由外部访问。 部署业务应用 首先,我们需要将业务应用部署到 k8s 集群中。 要让这个 web 应用的镜像在 k8s 中运行,我们首先要定义一个 deployment 资源。 通过创建deploy.yaml来描述 deployment 资源。 里配置“服务”; 部署服务 由于 deployment 是一个弹性组件,其管理的应用实例不是固定的,而是可以任意伸缩。 配置 ingress 开放外部访问 k8s 是一个集群,deployment、service 都是集群内部的资源,他们通过一个内部虚拟网络互相访问。

    1.2K20编辑于 2022-11-28
  • 来自专栏Kubernetes

    K8s】Kubernetes 服务发现之 Service

    如果您有其他想要了解的,欢迎私信联系我~ 基本介绍 Service 是 Kubernetes 提供的一种服务发现机制,主要作用是通过 nodeSelector(标签选择器)关联 Pod 对象,以单一入口方式提供内部服务 Service 对象创建 DNS 条目 服务发现:集群内可以通过 Service 名称来发现并访问服务,而不需要知道 Pod 的 IP 地址 负载均衡:集群通过 kube-proxy 组件将访问请求负载均衡到 Endpoints 上 扩展性:如果 Pod 的数量发生变化,集群会自动更新 Service 和 kube-proxy 的配置 对象类型 ClusterIP:默认类型,通过集群内部 IP 暴露服务,实现服务间调用 ,服务只能在集群内部访问 NodePort:通过 Node 节点的 IP 和 静态端口暴露服务,路由到 ClusterIP 服务,通过 iptables 赋予了调用 Node 节点特定 Port 就能访问集群内部 路由到 ClusterIP 服务和 NodePort 服务 ExternalName:直接引用集群外部服务 资源清单(示例) # demo-servcie.yaml apiVersion: v1 kind

    65010编辑于 2024-09-11
  • 来自专栏架构驿站

    K8S生态之服务发现解析

    在微服务体系架构中,我们通常所说的“服务发现”,指的是广义层面的描述,其主要包含两个最核心的模块:服务注册与服务发现。那么什么是“服务注册”、“服务发现”呢? 而对于服务发现,其指的是新注册的这个服务模块能够及时的被其他调用者所发现。无论其操作状态为服务新增还是服务删减都能够实现自动发现。 针对上述概念的解析,其具体场景表现为:服务 X 调用服务 Y 时,需要通过服务发现模块找到服务 Y 的 IP 和 Port 列表,而服务 Y 的实例在启动时需要把提供服务的 IP 和 Port 注册到服务注册中心 服务发现 在真正发起服务调用前,调用方需要从注册中心拿到相应服务可用的 IP 和 Port 列表,即服务发现。 综上所述,基于容器 K8S 生态中“服务发现“机制的相关解析,本文到此为止,大家有任何问题或建议,可以随时留言、沟通。

    51130编辑于 2021-12-09
  • 来自专栏Kubernetes

    K8s】Kubernetes 服务发现之 Ingress

    如果您有其他想要了解的,欢迎私信联系我~ 基本介绍 Ingress 是 Kubernetes 提供的一种服务发现机制,主要作用是为集群外部访问集群内部服务提供访问入口,通过制定 Ingress 策略管理 从而跳过 kube-proxy 组件的转发,kube-proxy 不再起作用 Ingress 对象与其反向代理的 Service 对象必须处于同一命名空间 Ingress 通过 path 路径访问不同服务 ,且 “ / ” 位于最后避免其他路径被拦截 工作原理 定义 Ingress 策略:用户在 Kubernetes 集群中创建 Ingress 资源,定义如何将外部请求路由到集群内的服务 策略监听:Ingress Ingress 资源被创建或现有资源被更新时,Ingress 控制器会读取这些规则 配置负载均衡器或反向代理:Ingress Controller 根据 Ingress 策略配置内部的负载均衡器或反向代理服务器 (如 Nginx、HAProxy 等),设置路由规则 路由转发:Ingress Controller 会根据配置的策略,将请求转发到正确的服务 服务响应:服务处理请求并返回响应,Ingress Controller

    61210编辑于 2024-09-02
  • 来自专栏运维小路

    Kubernetes(k8s)-服务(Service)流量走向

    -m comment --comment "default/my-service"为该规则添加注释,说明这条规则是为名为 “my-service” 的服务在 “default” 命名空间中设置的。

    42710编辑于 2025-01-10
领券