首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    平台工程:从 Kubernetes API 学习

    从 Kubernetes 的流行及其 API 学习。 译自 Platform Engineering: Learning From The K8s API 。...随着Kubernetes(K8s)平台的兴起,团队终于有了一个绝佳的机会和工具,可以通过将服务所需的一切放在K8s API后面来降低开发者的认知复杂度。...相反,K8s API和模型简单地要你失败后重试,直到操作成功。如果一个pod无法启动,kubelet不会停止尝试,而是会一直重试,直到成功,即使在不进行干预的情况下这种条件可能永远不会变为true。...团队需要将Pagerduty服务连接到他们的K8s服务吗?使用Crossplane的terraform provider。...你甚至不必使用K8s API,可以使用Nomad或自制API。但你至少应该从K8s API所做的非常出色的工作中吸取教训,因为它的使用不仅仅是盲从,它提供了令人难以置信的自动化效果。

    38710

    容器网络硬核技术内幕 (7) 大海航行靠舵手

    让我们小结一下基于docker引擎的容器网络: 每个docker容器需要连接到网络上,才能对外提供服务,否则其存在没有任何意义。...我们也知道,在linux + docker的体系中,创建容器、销毁容器、将容器连入网络、监控容器性能等操作,都需要手工进行。...Kubernetes可以自动化地调度容器资源,进行容器的创建、入网、扩容和销毁,结合Harbor镜像仓库、Istio API网关、Prometheus性能监控、Jenkins构建流水线等组件,能够实现从代码提交到自动部署的...“舵手” kubernetes 的架构如下: 在如此复杂的架构中,目前我们只需要掌握: Kubernetes的容器资源分配单位是pod,一个pod中可以有多个容器,但对pod之外呈现为一个整体(一个IP...地址); Kubernetes的容器运行载体是node,一个node可以运行多个Pod。

    77620

    深入解析Kubernetes Pod沙箱创建失败问题:从错误日志到解决方案

    深入解析Kubernetes Pod沙箱创建失败问题:从错误日志到解决方案 引言 Kubernetes(k8s)作为容器编排的事实标准,广泛应用于云原生场景。...同时,我们也会结合Java代码示例,展示如何在应用程序中优雅地处理类似的Kubernetes API错误。 1....在Java应用中优雅处理Kubernetes API错误 如果你的应用通过Kubernetes Java Client(如io.fabric8:kubernetes-client)管理Pod,可以捕获并处理类似错误...: import io.fabric8.kubernetes.api.model.Pod; import io.fabric8.kubernetes.api.model.PodBuilder; import...结语 Kubernetes Pod创建失败可能由多种因素导致,从云平台内部错误到本地网络配置问题。

    22510

    TF+K8s部署指南丨容器的多网络接口(multi-net)功能支持

    从4.0版开始,Tungsten Fabric为使用Kubernetes编排器的容器提供网络支持。你可以使用标准容器网络接口(CNI插件)为创建的每个容器分配一个网络接口。...从5.1版本开始,Tungsten Fabric支持为容器分配多个网络接口(multi-net),使容器能够连接到多个网络,并且可以指定容器能连接到的网络。...TF多网模型不需要修改Kubernetes API和Kubernetes CNI驱动。TF多网模型与Kubernetes多网模型一样,也不改变已有的集群范围网络行为。...·在从Kubernetes API服务器中删除网络附件定义之前,由管理员负责删除相应的TF pod。 ·除了自定义网络外,TF还创建了一个默认的cluster-wide-network。...CRD指定的网络是不被Kubernetes识别的sidecars。附加的pod网络附件与Kubernetes API及其对象(如服务、端点、代理等)的交互没有被指定。

    98400

    Kubernetes的服务网格(第2部分):Pods目前看来还是很棒的

    作为服务网格,链接器被设计为与应用程序代码一起运行,管理和监视服务间通信,包括执行服务发现,重连,负载平衡和协议升级。 乍一看,这听起来非常适合Kubernetes的sidecar部署。...在DaemonSet中,通过链接器的请求路径如下图所示: 正如你所看到的,一个请求从主机1上的Pod A开始发往主机2上的Pod J必须通过Pod A上的本地主机链接实例,然后到主机2的链接实例,...在Kubernetes 1.4及更高版本中,这些信息可以通过下载的API直接获得。...我们提供了一个简单的脚本查询Kubernetes API来获取主机IP; 这个脚本的输出可以被应用程序使用,或者用来构建一个如上个例子所示的http_proxy环境变量。...为此,我们可以利用linkerd 0.8.0引入的一个强大的新特性,称之为转换器,它可以对链接到路由的目标地址进行任意的后续处理。

    3K60

    探索使用 Kubernetes 扩展专用游戏服务器:第1部分-容器化和部署

    从本质上讲,Kubernetes 实际上只是一个集群管理解决方案,几乎可用于任何类型的软件。...虽然我的示例代码对 Kubernetes 进行了直接的 API 调用来创建 Pod,但通常的做法是将Pod 定义保存在 YAML 文件中,这些文件通过命令行工具 kubectl 发送到 Kubernetes...由于我们也可以通过 Kubernetes API 创建 Pod,因此 Paddle Soccer 具有一个称为会话的游戏服务器管理系统,该系统具有/ create 处理程序,可以在 Kubernetes...通过从生成的 Pod 名称中查找新 Pod,我们还可以使用内置的 Kubernetes API 来确定新 Pod 在集群中的哪个节点上。...游戏服务器管理器从 Kubernetes 获取上述端口信息和 Pod 的 IP 信息,并将其传递回Matchmaker。 matchmaker 将端口和 IP 信息传回给两个玩家客户端。

    3.1K20

    后Kubernetes时代的微服务

    服务网格将流量管理从Kubernetes中解耦,服务网格内部的流量无须kube-proxy组件的支持,通过接近微服务应用层的抽象,管理服务间的流量,实现安全性和可观察性功能。...从Kubernetes v1.2版本起,默认使用iptables代理模式。在Kubernetes v1.8.0-beta.0版本中,添加了IPVS代理模式。...xDS协议控制了Istio服务网格中所有流量的具体行为,即将图1-3中的方块链接到了一起。...VirtualService:实际上可以将Kubernetes服务连接到Istio Gateway上,并且可以执行更多操作,例如,定义一组流量路由规则,以便在主机被寻址时应用。...如果喜欢本文欢迎 在看丨留言丨分享至朋友圈 三连  热文推荐   风靡B站的《看漫画学Python》到底是什么来头? 不要再说微服务可以解决一切问题了!

    1.1K30

    盘点Kubernetes网络问题的4种解决方案

    Flanneld进程并不简单,它首先上连etcd,利用etcd来管理可分配的IP地址段资源,同时监控etcd中每个Pod的实际地址,并在内存中建立了一个Pod节点路由表;然后下连docker0和物理网络...这样做的结果是简单、安全和高效,也能减少将已经存在的程序从物理机或者虚拟机移植到容器下运行的难度。 Pod1到Pod2的网络,分两种情况。...支持使用MacVLAN设备将容器连接到本地网络。 支持DHCP获取容器的IP。 支持Open vSwitch。 支持VLAN划分。...Pod的创建在PaaS里主要有两种情形: 应用的第一次部署及扩容,这种情况主要是从IP pool中随机分配; 应用的重新部署:在重新部署时,已经释放的IP已根据RC全名存放于IP Recycle列表中,...另外为了防止IP固定方案中可能出现的问题,在Kubernetes中加入了额外的REST API:包括对已分配IP的查询,手动分配/释放IP。

    2.5K20

    Tungsten Fabric如何编排

    在下图中,可以看到OpenStack的Tungsten Fabric插件提供了从Neutron网络API到Tungsten Fabric API调用的映射,后者在Tungsten Fabric控制器中执行...在Kubernetes网络实现中,特定pod的选择是由应用程序本身使用发送pod中的本机Kubernetes API来执行的。...服务中的每个pod在虚拟网络中分配唯一的IP地址,并且还为服务中的所有pods分配浮动IP地址。服务地址用于将流量从其他服务中的pod或外部客户端或服务器发送到服务中。...当流量从pod发送到服务IP时,连接到该pod的vRouter将使用到服务IP地址的路由执行ECMP负载平衡,该服务IP地址将解析为构成目标服务的各个pod的接口。...在Kubernetes中创建或删除服务和pod时,kube-network-manager进程会检测k8s API中的相应事件,并使用Tungsten Fabric API根据为Kubernetes群集配置的网络模式应用网络策略

    1.6K20

    详解Kubernetes网络模型

    1.1、Kubernetes API server 在 Kubernetes 中,一切都是由 Kubernetes API 服务器(kube-apiserver)提供的 API 调用。...API 服务器是 etcd 数据存储的网关,它维护应用程序集群的所需状态。要更新 Kubernetes 集群的状态,您可以对描述所需状态的 API 服务器进行 API 调用。...容器网络接口 (CNI) 提供了一个通用 API,用于将容器连接到外部网络。作为开发人员,我们想知道 Pod 可以使用 IP 地址与网络通信,并且我们希望此操作的机制是透明的。...部署 Pod 时,作为 DaemonSet 部署到 Kubernetes 集群的小型二进制文件会从 Nodes 本地 kubelet 进程接收任何将 Pod 添加到网络的请求。...这种需求突出了两个相关的问题:(1)从 Kubernetes 服务获取流量到 Internet。(2)从 Internet 获取流量到您的 Kubernetes 服务。

    2.2K20

    EMQX 在 Kubernetes 中如何进行优雅升级

    升级完成后,各节点间的负载不均衡(如上图:emqx-ee-0 在升级过程中,客户端可能会进行重连,此时由于 emqx-ee-0 还未就绪,因此可能连接到 emqx-ee-1 或者 emqx-ee-2,升级完成后...由于新 pod 建立的过程存在着时间差,以上图为例,emqx-ee-a-emqx-ee-0 最后升级,当升级完成后,可能客户端已经完成重试、重连,此时主要连接已经被另两个 pod 接纳,因此会导致 pod...从 4.4.12 版本开始,EMQX 企业版本支持节点疏散功能。节点疏散功能允许用户在关闭节点之前强制将连接和会话以一定速率迁移到其他节点,以避免节点关闭带来的会话数据丢失。...关于节点疏散更多信息请参考相关文档 在 Kubernetes 上我们通过模拟蓝绿发布以及结合节点疏散功能,实现了连接可控迁移,极大减少了断连的次数(仅断连一次)。...将旧节点从 service 中摘出,此时旧节点不再接收新的连接请求。通过 EMQX 节点疏散功能,逐个对节点上的连接进行可控迁移,直至连接全部完成迁移,再对节点进行销毁。

    93330

    Kubernetes 实战

    P122 图 5.1 内部和外部客户端通常通过服务连接到 pod.png 创建服务 P123 服务使用标签选择器([03. pod: 运行于 Kubernetes 中的容器](https://links.jianshu.com...# 遵循 v1 版本的 Kubernetes API apiVersion: v1 # 资源类型为 Service kind: Service metadata: # Service 的名称 name...P125 从集群内部测试服务 P125 可以通过以下三种方式向服务发送请求: P125 创建一个 pod ,它将请求发送到服务的集群 IP 并记录响应。...P130 每个服务从内部 DNS 服务器中获得一个 DNS 条目,客户端的 pod 在知道服务名称的情况下可以通过全限定域名 (FQDN) 来访问。...P132 连接集群外部的服务 P132 在集群中运行的客户端 pod 可以像连接到内部服务一样连接到外部服务,这样做可以充分利用负载均衡和服务发现。

    91200

    9 张图带你搞懂 Istio

    红线显示了从 pod1-nginx 中的 nginx 容器向 service-python 服务发出的请求,该服务将请求重定向到 pod2-python。...通过这种方式,Kubernetes API (以及整个主节点或控制平面)可能会崩溃,但服务仍然可以工作。...如果在使用 Istio 的时候没有什么变化(Nginx Pod 仍然可以像以前一样连接到 Python Pod),为什么要首先使用 Istio 呢?...加密 可以对 Pods 之间从 Istio-Proxy 到 Istio-Proxy 的集群内部通信进行加密。 监控/图形生成 Istio 连接到 Prometheus 等监控工具。...多集群 Mesh Istio 有一个内部服务注册中心,它可以使用现有的 Kubernetes 服务。但是也可以从集群外部添加资源,甚至将不同的集群连接到一个网格中。

    3.5K21

    如何通过Kubernetes事件来报告错误

    本文首发于 https://robberphex.com/error-reporting-with-kubernetes-events/ 组内有维护一个Kubernetes Webhook,可以拦截pod...比如我们Describe一个pod,就能看到这个pod对应的事件: kubectl describe pod sc-b-68867c5dcb-sf9hn [pod-events.png] 可以看到,从调度...如何访问Kubernetes API 上报事件的第一步是访问Kubernetes API,这个API是基于Restful API的,Kubernetes也基于这个API,包装了SDK,直接可以用。...通过SDK连接到Kubernetes API,有两种方式: 第一种是通过kubeconfg文件来访问(从外部访问),第二种是通过serviceaccount访问(从Pod访问)。...= nil { panic(err) } fmt.Printf("Version: %#v\n", versionInfo) } 运行这段代码,就可以连接到集群中,可以获取到Kubernetes

    1.1K20
    领券