最近我们内网的 k8s 集群做了一次升级,发现经过 APISIX 网关服务都 503 异常了,于是做了一次分析。我们在内网和线上都采用了 APISIX 来做流量网关,对 APISIX 也贡献了 6 个 PR,所以对它的源码还算比较了解。下面排查过程比较曲折,情感上多次起伏,各位看官耐心看完。
DNS 在 Kubernetes 集群中扮演着核心角色,它负责解析服务和 Pod 的名称,使得集群内的组件能够相互通信。如果 DNS 出现问题,可能导致服务间的通信失败,影响整个集群的稳定性和性能。
作者:InfraCloud 技术领导、开源贡献者 Sanket Sudake。客座文章最初在InfraCloud 的博客[1]上发表。
近期我们发现 Kubernetes 环境下的 Flink 集群有个奇怪的现象:在算子并行度较大(例如超过 50)时,Flink 的 TaskManager 注册异常缓慢(具体表现为 TaskManager 容器注册后过段时间就超时退出了,随后反复循环,导致作业迟迟分配不到所需的资源),且 Web UI 长期处于如下的加载界面,无法正常显示作业列表:
监控域名和 URL 是可观察性的一个重要方面,主要用于诊断可用性问题。接下来会详细介绍如何使用 Blackbox Exporter 和 Prometheus 在 Kubernetes 中实现 URL 监控。
原文链接:https://zhuanlan.zhihu.com/p/34558421
Kubernetes 为 Service 和 Pod 创建 DNS 记录。 你可以使用一致的 DNS 名称而非 IP 地址访问 Service。
背景介绍 Service Mesh(服务网格)是一个基础设施层,让服务之间的通信更安全、快速和可靠,是云原生技术栈的关键组建之一。2018 年是 Service Mesh 高歌猛进的一年,Service Mesh 数据面板百花齐放,遍地开花,业界几乎所有大厂都在推出自己的 Service Mesh 产品。2018 年 Service Mesh 大事件如下: a.2018 年 7 月 31 日,Istio 1.0 版本发布,标志着 Istio 可用于生产环境 b.2018 年 9 月 19 日,Con
作为服务发现机制的基本功能,在集群内需要能够通过服务名对服务进行访问,这就需要一个集群范围内的DNS服务来完成从服务名到ClusterIP的解析。
minikube可以运行一个本地单节点的kubernetes集群,可以非常容易地在本地部署kubernetes。虽然只支持单节点的kubernetes集群,但是能支持很多kubernetes特性,包括:
Kubernetes是当今最流行的容器编排和集群管理平台之一。本博客将深入解析Kubernetes的核心架构,重点介绍主节点、工作节点和容器运行时,并探讨核心概念:Pod、Service和Namespace。通过对这些关键组件的理解,读者将掌握在Kubernetes中部署和管理应用程序的基础知识。
为了跟踪和发现在Kubernetes集群中运行的容器应用出现的问题,常用如下查错方法:
Kubernetes 环境中,很多时候都要求节点内核参数开启 bridge-nf-call-iptables:
本次演示环境,我是在本机 MAC OS 以及虚拟机 Linux Centos7 上操作,以下是安装的软件及版本:
Kubernetes (通常称为 K8s) 是用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统,是 Google 内部工具 Borg 的“开源版”。
DNS解析是Kubernetes上任何应用程序基础架构的重要组成部分.当您的应用程序代码尝试访问Kubernetes集群中的另一个服务甚至是Internet上的服务时,它必须先查找与该服务的主机名相对应的IP地址,然后再启动与该服务的连接.此名称查找过程通常称为服务发现。在Kubernetes中,server(无论是kube-dnsCoreDNS还是CoreDNS)将服务的主机名解析为唯一的不可路由的虚拟IP(VIP),如果它是clusterIP类型的服务.在kube-proxy每个节点上这个VIP映射到该服务的一组pod,并随机选择一个pod进行转发。使用服务网格时,sidecar的工作原理就流量转发而言与kube-proxy相同。
对于新安装的 Kubernetes,经常出现的一个问题是 Service 没有正常工作。如果您已经运行了 Deployment 并创建了一个 Service,但是当您尝试访问它时没有得到响应,希望这份文档能帮助您找出问题所在。
在k8s中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,这也就意味着不方便直接采用pod的ip对服务进行访问。
事情是这样的,最近行业不景气(摆烂),由于业务收缩,所以需要对其中一个小的 k8s 集群中的节点做收缩,下掉几台不需要使用的服务器,在对 k8s node 做变更的时候出现了一个意外:coredns 在某个 node 被删除之后重启后发现无法正常启动,并且出现报错
从Kubernetes 1.11开始,可使用CoreDNS作为Kubernetes的DNS插件进入GA状态,Kubernetes推荐使用CoreDNS作为集群内的DNS服务。 我们先看一下Kubernetes DNS服务的发展历程。
对于新安装的 Kubernetes,经常出现的一个问题是 Service 没有正常工作。如果您已经运行了 Deployment 并创建了一个 Service,但是当您尝试访问它时没有得到响应,希望这份文档能帮助您找出问题所在。
kubernetes,简称 K8s,是用 8 代替 8 个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes 提供了应用部署,规划,更新,维护的一种机制。
“没有最好的技术,只有最合适的技术。”我想这句话也同样适用于微服务领域,没有最好的服务框架,只有最适合自己的服务改造。在Dubbo的未来规划中,除了保持自身技术上的领先性,关注性能,大流量,大规模集群领域的挑战外,围绕Dubbo核心来发展生态,将Dubbo打造成一个服务化改造的整体方案也是重点之一。这是我们将推出“服务化改造”系列文章的第二篇,通过在一些外围系统和服务化基础组件上的开发实践,分享Dubbo生态下的服务化改造收获和总结。
Kubernetes Pod 是有生命周期的,它们可以被创建,也可以被销毁,然后一旦被销毁生命就永远结束。通过ReplicationController 能够动态地创建和销毁Pod(列如,需要进行扩缩容,或者执行滚动升级);每个Pod都会获取它自己的IP地址,即使这些IP地址不总是稳定可依赖的。这会导致一个问题;在Kubernetes集群中,如果一组Pod(称为backend)为其他Pod(称为frontend)提供服务,那么哪些frontend该如何发现,并连接到这组Pod中的那些backend呢?
Service 是由 kube-proxy 组件,加上 iptables 来共同实现的。
首先,StatefulSet 的控制器直接管理的是 Pod。这是因为,StatefulSet 里的不同 Pod 实例,不再像 ReplicaSet 中那样都是完全一样的,而是有了细微区别的。比如,每个 Pod 的 hostname、名字等都是不同的、携带了编号的。而 StatefulSet 区分这些实例的方式,就是通过在 Pod 的名字里加上事先约定好的编号。
Kubernetes是一个开源的,用于管理云平台中做个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单且高效,Kubernetes提供了应用部署,规划,更新,维护的一种机制,它可以自动化应用容器的部署、扩展和操作 , 提供以容器为中心的基础架构。
Kubernetes是一个轻便的和可扩展的开源平台,用于管理容器化应用和服务。通过Kubernetes能够进行应用的自动化部署和扩缩容。在Kubernetes中,会将组成应用的容器组合成一个逻辑单元以更易管理和发现。Kubernetes积累了作为Google生产环境运行工作负载15年的经验,并吸收了来自于社区的最佳想法和实践。Kubernetes经过这几年的快速发展,形成了一个大的生态环境,Google在2014年将Kubernetes作为开源项目。Kubernetes的关键特性包括:
在 Kubernetes 中,Services[1]是一种抽象,用来暴露运行在一组 Pod 上的应用。Service 可以有一个集群范围的虚拟 IP 地址(使用 type: ClusterIP 的 Service)。客户端可以使用该虚拟 IP 地址进行连接, Kubernetes 为对该 Service 的访问流量提供负载均衡,以访问不同的后端 Pod。
「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s 生态」 ( https://zhuanlan.zhihu.com/container )。
CoreDNS 是一个开源的域名系统(DNS)服务器和DNS查询解析器。它是一个轻量级、可扩展的DNS服务器,专门设计用于在 Kubernetes 等容器编排平台上提供服务发现和DNS解析功能。以下是关于 CoreDNS 的一些重要信息:
域名系统(DNS)是一种用于将各种类型的信息(例如IP地址)与易于记忆的名称相关联的系统。默认情况下,大多数Kubernetes群集会自动配置内部DNS服务,以便为服务发现提供轻量级机制。内置的服务发现使应用程序更容易在Kubernetes集群上相互查找和通信,即使在节点之间创建,删除和移动pod和服务时也是如此。
导读:本文主要介绍了人人视频在微服务化和云原生领域的一些自己的探索,我们的内部技术栈也在朝着这些主流的方向发展演进,不至于在这波潮流中落后,当然任何技术的使用最后都是为业务服务的,所以我们在关注使用最新技术的过程中也会考虑自身现有系统的现状以及技术储备的情况。实践微服务和云原生的方式有多种,这里介绍的只是一种方式,希望可以给大家一个参考。
服务发现就是一种提供服务发布和查找的服务,是基于服务架构(SOA)的核心服务,需具备以下关键特性:
Kubernetes 服务发现是一个经常让我产生困惑的主题之一。本文分为两个部分:
愈发复杂的应用程序正在依靠微服务来保持可扩展性和提升效率。Kubernetes为微服务提供了完美的环境,并能够让其与Kubernetes的工具组件和功能兼容。当应用程序的每个部分放置在一个容器中,整个系统就会更具可伸缩性。
问题描述:docker push提示没有权限上传基础镜像至腾讯云Docker仓库。
在之前的文章中我们介绍了从传统部署方式到虚拟化再到容器部署方式的演变,随着容器数量规模的不断增大,我们急需一个大规模容器编排系统。Kubernetes是一个全新的基于容器技术的分布式架构解决方案,并且是一个一站式的完备的可弹性运行的分布式系统开发和支撑平台。
在之前几篇文章的基础,(Centos7部署Kubernetes集群、基于kubernetes集群部署DashBoard、为Kubernetes集群部署本地镜像仓库),本文继续搭建Kubernete中的服务注册发现机制——SkyDNS.
漏洞概述 2020年12月4日,Kubernetes产品安全委员会披露了一个新的Kubernetes漏洞,即CVE-2020-8554。这是一个中危漏洞,所有的Kubernetes版本都会受到该漏洞的影响。该漏洞允许Kubernetes服务将集群流量拦截至任意IP地址,任何可以管理服务的用户可以利用此漏洞对群集中的Pod和节点执行中间人(MITM)攻击。 攻击者可以利用MITM攻击伪装成内部或外部节点,然后从网络流量中获取凭证,在将目标用户的数据发送到其预期目标之前篡改目标用户的数据,或完全阻止其与特定IP
Kubernetes(K8S)是Google开源的容器集群管理系统,其设计源于Google在容器编排方面积累的丰富经验,并结合社区创新的最佳实践。 K8S在Docker容器技术的基础之上,大大地提高了容器化部署应用简单高效。经过几年的快速发展,K8S已经成为建设容器云平台的首选方案。
Kubernetes简称k8s(也缩写为kube),一个开源的用于自动化部署容器化(主要针对Docker,其它如katacontainers和rkt也支持)应用程序系统,通过分组容器(容器组被命名为Pod,Pod也是Kubernetes的最小调度单元)来调度和管理容器,官方网站:https://kubernetes.io/,本文大量参考了官方的https://kubernetes.io/docs/concepts/、https://kubernetes.io/zh/(官方中文)等。
大家好,本期微课堂介绍在新一代数字化企业云平台中对于Kubernetes的学习以及使用的总结。 本次分享分为两部分: 1.介绍Kubernetes是什么以及一些基本概念 2.介绍在新一代数字化企业云平
每个 Kubernetes 服务都会自动注册到集群 DNS 之中。注册过程大致如下:
集群是由一组被称作节点(node) 的机器组成, 这些节点上会运行由 Kubernetes 所管理的容器化应用。 且每个集群至少有一个工作节点。
图片来源:https://unsplash.com/photos/BjjwEf0BRkA
领取专属 10元无门槛券
手把手带您无忧上云