最近,有人问我 NodePort,LoadBalancer 和 Ingress 之间的区别是什么。 它们是将外部流量引入群集的不同方式,并且实现方式不一样。 我们来看看它们是如何工作的,以及什么时候该用哪种。
毛艳清,富士康工业互联网科技服务事业群运维中心主管,现负责公有云和私有云的运维工作,聚焦在云计算和云原生领域,主要关注企业迁云的策略与业务价值、云计算解决方案、云计算实施与运维管理,以及云原生技术的布道和落地实践。
原文:http://mp.weixin.qq.com/s/dHaiX3H421jBhnzgCCsktg 当我们使用k8s集群部署好应用的Service时,默认的Service类型是ClusterIP,这种类型只有 Cluster 内的节点和 Pod 可以访问。如何将应用的Service暴露给Cluster外部访问呢,Kubernetes 提供了多种类型的 Service,如下: ClusterIP ---- ClusterIP服务是Kuberntets的默认服务。它在集群内部生成一个服务,供集群内的其他应用
最近,很多人问我 NodePorts,LoadBalancer和 Ingress 之间的区别是什么?它们是将外部流量引入集群的不同方式,而且它们的运行形式各不相同。接下来,请你跟我一起,来看看他们是如何工作的,以及它们各自的适用情况。
例行查看 krew index 的时候,发现有个新插件 gadgit,翻翻来历,居然是 Kinvolk 的作品,公司不太出名,印象里最早做服务网格 Benchmark 的就是他。插件功能介绍很简单:Collection of gadgets for Kubernetes developers,但是用法就很了不得了,非常有字数越小事越大的感觉:
how to deploy a TiDB cluster on GCP GKE with your laptop (Linux or macOS) for development or testing
在谷歌发明 Kubernetes 后的几年中,它彻底改变了 IT 运维的方式,并逐渐成为了事实标准,可以帮助组织寻求高级容器编排。那些需要为其应用程序提供 最高级别可靠性、安全性和可扩展性 的组织选择了谷歌 Kubernetes 引擎(Google Kubernetes Engine, GKE)。光是 2020 年二季度,就有 10 多万家公司使用谷歌的应用现代化平台和服务(包括 GKE)来开发和运行他们的应用。到目前为止, Kubernetes 还需要手工装配和修补程序来优化它才能满足用户需求。如今,谷歌推出了 GKE Autopilot,这是一个管理 Kubernetes 的革命性运营模式,让用户专注于软件开发,而 GKE Autopilot 则负责基础架构。
Network policy(下文简称为np)的本质是通过Kubernetes(下文简称k8s)的网络插件,创建一系列的网络规则,实现细粒度控制出入口流量,从而解决应用访问隔离的问题。因此选用哪种k8s网络方案很重要,如果这个方案没有实现np,那么k8s就不具备应用访问隔离的能力了,具体可以参见官方文档。
客座撰稿人:Karen Bruner,StackRox技术专员。原文可以在这里找到。
rbac-lookup 是一个CLI 命令行工具,用于轻松找到与 Kubernetes 角色和集群角色绑定的 user、service account 或 group name。
Kubernetes 真正的超级功能之一是其开发者优先的网络模式,它提供了易于使用的功能,如 L3/L4 服务和 L7 入口,将流量引入集群,以及用于隔离多租户工作负载的网络策略。随着越来越多的企业采用 Kubernetes,围绕多云、安全、可视性和可扩展性的新要求,用例的范围也在扩大。此外,服务网格和 serverless 等新技术对 Kubernetes 底层的定制化提出了更多要求。这些新需求都有一些共同点:它们需要一个更加可编程的数据平面,能够在不牺牲性能的情况下执行 Kubernetes 感知的数据包操作。
在云原生安全方面,Kubernetes 在不同维度提供了很多的不同内容,例如 RBAC、Networkpolicy、SecurityContext 等等,种种措施中,像我这样基础不牢的 YAML 工程师最头大的可能就要数 SecurityContext 里面的 SELinux、Seccomp 和 AppArmor 三大块了。Security Profiles Operator 项目为此而来,希望能够降低在 Kubernetes 集群中使用这些安全技术的难度。在项目网页上转了转,发现他所说的简化,除了定义几个 CRD 封装这样的 Operator 传统技能之外;还有一个使用 CRD 在节点间传输 Security Profile 的能力;最后也是最重要的,提供了很方便的录制功能,这倒是真的戳中了痛点——手写 Profile 固然酷炫,录制生成才是生产力啊。目前支持的功能矩阵如下:
最近看到了一份收集Kubernetes故障案例的资料,资料由ZalandoTech的高级首席工程师Henning Jacobs加以维护。这个由社区驱动的项目全面介绍了Kubernetes反模式以及为何导致Kubernetes运行错误的原因。
Google 声明[2]将选择 Cilium[3] 作为 GKE 网络的数据面 V2 以便增加其容器安全性和可观测性。
在 Kubernetes 集群边缘对外提供网络服务的时候,通常需要借助 Ingress 对象,这个对象提供了暴露 Service 所必须的核心要素,例如基于主机名的路由、对 URL 路径的适配以及 TLS 配置等。但是在实际开放服务的时候,往往会有更多的具体需求,这时 Ingress 对象所提供的核心功能就有些力不从心了,各种 Ingress 控制器往往会使用 metadata.annotations 中的特定注解,来完成对 Ingress 特定行为的控制,完成各自的个性化功能,例如认证、路径变更、黑白名单等,这就让 Ingress 对象变成了一个奇怪的东西:结构化的核心结构,和非结构化的标注结合起来形成各种 Ingress 方言,并且后期还出现了 Traefik Middleware 这样的 CRD 配置,这给 Ingress 功能的集中管理造成了一个较大的困扰;另外 Ingress 中可以随意定制主机名、路径以及后端服务,也给共享集群的用户造成了一定的安全隐患。包括 Cotour、Traefik 在内的 Ingress 控制器后期都提供了各自的基于 CRD 的功能表达,客观上也让 Ingress 世界更为分裂。 例如要移除路径前缀,Nginx Ingress 控制器需要使用 nginx.ingress.kubernetes.io/rewrite-target 注解,而 Traefik 1.7 中则需要使用 traefik.ingress.kubernetes.io/rule-type: PathPrefixStrip 注解。
Envoy/Istio 1.1 中有个有趣的新特性:负载均衡提供了区域感知的能力。简单说来,就是在分区部署的较大规模的集群,或者公有云上,Istio 负载均衡可以根据节点的区域标签,对调用目标做出就近选择。在跨区部署的应用中,原始的 Kubernetes 负载均衡可能会把来自 A 区的请求发送给远在 B 区的服务,造成高成本的跨区调用。要缩减这种损耗,通常都需要实现更多的逻辑,Istio 的区域感知特性在某种程度上提供了一种解决办法。
关注容器圈的朋友一定会注意到最近一年的高频词:Service Mesh。这么绕口的词,到底是什么意思?引用一篇文章里对其的解释:
GKE与RTX都是优秀的企业即时通讯产品,各有千秋,例如GKE内置的功能更丰富,RTX界面更清爽、操作更方便。由于二者都提供了二次开发接口,可以利用接口来增加原本没有的功能,所以本文不打算在功能上对二者进行对比(因为通过扩展都可以实现对方没有的功能,例如消息监控),而是准备把二者均视为企业级应用整合的平台,从系统整合需要解决的问题的上来对它们的扩展性做一下对比。
在Kubernetes集群上运行多个服务和应用程序时,统一的日志收集不可或缺,Elasticsearch、Filebeat和Kibana(EFK)堆栈是目前较受欢迎的日志收集解决方案。在本教程中,我们将为部署在集群中的应用和集群本身设置生产级Kubernetes日志记录。将使用Elasticsearch作为日志后端,同时Elasticsearch的设置将具有极高的可扩展性和容错性。本教程一共有两篇,这是第一篇。
Kubernetes 1.7已经发布,该版本聚焦于安全、存储和扩展性等交付特性,其中包括Network Policy API、StatefulSets自动升级策略以及可扩展的API聚合层。Kubernetes的上一个发布版1.6版侧重于解决规模化和自动化上的问题,显然最新的1.7发布版力图为Kubernetes在企业组织中的进一步采用夯实基础。需注意的是,虽然1.7版的核心集群编排功能是以稳定版提供,但是其中给出的一些头条发布特性在文档中被标为Alpha版或Beta版。
周五下午在公司的服务网格月度讨论会上,一位同事为大家分享了在服务网格中使用 ebpf 来优化提升 istio 中 sidecar 和 RS 间的通信效率。听过之后手痒难,想测试一把 ebpf。当这位同事在这方面做的还是比较深入的,而且给内核和 istio 中提交了pr。有兴趣的同学可以看看他的 github:https://github.com/ChenLingPeng 还有他的 blog。
自Google Anthos推出以来在混合云领域受到极大关注,作为Google进入ToB混合云市场的战略级产品,Anthos集成了如GKE (Google Kubernetes Engine)、GKE On-Prem、Istio on GKE等……引起业界的关注。可以说这又是Google又一大利器。那么混合云作为企业数字化转型的重要基础设施建设,既留了核心数据,降低了迁移风险,又能在原来资源的基础上增加公共云的弹性,一举多得,成为当前云计算发展的热门话题。而作为数字化转型的另外一个风向标DevOps如何与当前的混合云发展进行协作,带向企业进入云原生时代,将会成日今后数字化建设的一个重要主题。
数字化时代下,企业的发展与数据库的建设息息相关。如果搭建云下数据库,不仅要通过大量的运维投入保证数据库稳定运行,随着企业规模与数据量的发展,还要应对数据库扩容、弹性、运维、备份等各种各样的问题,云下数据库对企业提出的要求日益增长。此时有两种应对之法,一是凭借扩充技术团队解决问题,但这无疑将会带来不菲的运维与人员成本,二则是把一切交给云服务。
Prometheus 是为 Kubernetes 这样的动态环境而生的。它的服务发现能力和查询语言非常强大,Kubernetes 运维过程中,用户可以借 Prometheus 解决监控问题。
Kubernetes是当前最为流行的开源容器编排平台,成为众多企业构建基础架构的首选。在本文中,我们将探讨针对你的用例构建基础设施的最佳方式,以及你可能要根据各种限制条件做出的各种决定。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/aixiaoyang168/article/details/88664263
周五下午在公司的服务网格月度讨论会上,一位同事为大家分享了在服务网格中使用 ebpf 来优化提升服务网格 istio 中 sidecar 和 RS 间的通信效率。听过之后手痒难,想测试一把 ebpf。这位同事在这方面做的还是比较深入的,而且给内核和 istio 中提交了pr。有兴趣的同学可以看看他的 github:https://github.com/ChenLingPeng 还有他的 blog。
Rancher是一套容器管理平台,它可以帮助组织在生产环境中轻松快捷的部署和管理容器。 Rancher可以轻松地管理各种环境的Kubernetes,满足IT需求并为DevOps团队提供支持。
渐进式交付是持续交付的下一步, 它将新版本部署到用户的一个子集,并在将其滚动到全部用户之前对其正确性和性能进行评估, 如果不匹配某些关键指标,则进行回滚。
随着软件供应链攻击的增加,保护我们的软件供应链变得更加重要。此外,在过去几年中,容器的采用也有所增加。有鉴于此,对容器镜像进行签名以帮助防止供应链攻击的需求日益增长。此外,我们今天使用的大多数容器,即使我们在生产环境中使用它们,也容易受到供应链攻击。在传统的 CI/CD 工作流中,我们构建镜像并将其推入注册中心。供应链安全的一个重要部分是我们构建的镜像的完整性,这意味着我们必须确保我们构建的镜像没有被篡改,这意味着保证我们从注册中心中提取的镜像与我们将要部署到生产系统中的镜像相同。证明镜像没有被篡改的最简单和最好的方法之一(多亏了 Sigstore)是在构建之后立即签名,并在允许它们部署到生产系统之前验证它。这就是 Cosign 和 Kyverno 发挥作用的地方。
Kube-Bench是一款针对Kubernete的安全检测工具,从本质上来说,Kube-Bench是一个基于Go开发的应用程序,它可以帮助研究人员对部署的Kubernete进行安全检测,安全检测原则遵循CIS Kubernetes Benchmark。
Prometheus是一个用于监控和告警的开源系统。一开始由Soundcloud开发,后来在2016年,它迁移到CNCF并且称为Kubernetes之后最流行的项目之一。从整个Linux服务器到stand-alone web服务器、数据库服务或一个单独的进程,它都能监控。在Prometheus术语中,它所监控的事物称为目标(Target)。每个目标单元被称为指标(metric)。它以设置好的时间间隔通过http抓取目标,以收集指标并将数据放置在其时序数据库(Time Series Database)中。你可以使用PromQL查询语言查询相关target的指标。
我们将为搜索工程师介绍在Kubernetes(k8s)上运行Solr的基础知识。 具体来说,我们涵盖以下主题:
随着Google发布了其混合云服务:云服务平台(Cloud Service Platform,以下简称CSP)测试版,正式进军混合云领域,公有云三巨头全部拥有了混合云相关产品,云巨头角力混合云的时代正式开启。早在2015年,微软率先推出Auzre Stack混合云产品;2018年年底,AWS则跟进推出了其混合云产品OutPosts。
BPF 全称是「Berkeley Packet Filter」,中文翻译为「伯克利包过滤器」。它源于 1992 年伯克利实验室,Steven McCanne 和 Van Jacobson 写得一篇名为《The BSD Packet Filter: A New Architecture for User-level Packet Capture》的论文。该论文描述是在 BSD 系统上设计了一种新的用户级的数据包过滤架构。在性能上,新的架构比当时基于栈过滤器的 CSPF 快 20 倍,比之前 Unix 的数据包过滤器,例如:SunOS 的 NIT(The Network Interface Tap )快 100 倍。
Kubernetes 的稳健性、可靠性使它成为现阶段最流行的云原生技术之一,但也有不少用户反映, Kubernetes 技术学习起来十分复杂,只适用于大集群且成本较高。这篇文章将打破你的观念,教你在小型项目中部署 Kubernetes 集群。
容器技术所提供的解耦能力,让应用程序及其依赖程序不用再和操作系统耦合在一起。和处理虚拟机镜像方式不同,容器技术并不会将操作系统同应用程序打包在一起,这给我们节约了相当多的硬件资源,不管是cpu、内存,还是磁盘空间。同时,容器的下载,更新,部署和迭代的速度,也远比虚拟机镜像要快。因此,容器技术已经在技术圈中引起不小的变革。类似谷歌、微软和亚马逊这样子的公司都已经开始使用这项技术。
KubeArmor是一个支持容器的运行时安全实施系统,它可以从系统级别限制容器的行为(如进程执行、文件访问、网络操作和资源利用率)。
随着更多的组织开始拥抱云原生技术,Kubernetes已成为容器编排领域的行业标准。向 Kubernetes转变的这股潮流,很大程度上简化了容器化应用程序的部署、扩展和管理,并实现了自动化,为传统的单体式系统提供了胜于传统管理协议的众多优势。
其中,PWK 是试验性质的免费的 Kubernetes 集群,只要有 Docker 或者 Github 账号就可以在浏览器上一键生成 Kubernetes 集群。但是它有诸多限制,例如一次只能使用 4 个小时,并且有扩展性和性能等问题。所以 PWK 一般只用于教学或者试验。
云原生安全 1 Linux内核漏洞——CVE-2022-0185分析与思考 本文帮助云安全从业者理解该漏洞的原理,并做好针对性的检测和防御工作 https://mp.weixin.qq.com/s/fk1aMbsgLDlyXIhNgyONRg 2 什么是云计算?带你全方位走进“云”世界 本文从云计算基础知识,到IaaS和PaaS等,带你深入了解云计算 https://36kr.com/p/1644021188256640 3 The Route to Host:从内核提权到容器逃逸 从Linux内核漏洞的
李国宝:边缘计算k8s集群SuperEdge初体验zhuanlan.zhihu.com
Kubectl 是 Kubernetes 最重要的命令行工具。在 Flant,我们会在 Wiki 和 Slack 上相互分享 Kubectl 的妙用(其实我们还有个搜索引擎,不过那就是另外一回事了)。多年以来,我们在 kubectl 方面积累了很多技巧,现在想要将其中的部分分享给社区。
互联网后台架构技术的发展一日千里。身处技术变革浪潮的后台同学,应该都深切地感受到了云原生技术在公司内外的蓬勃发展。云原生技术正在逐渐成为后台工程师与架构师们的必修课,而 kubernetes 正是云原生的基石,聚光灯下的焦点。
领取专属 10元无门槛券
手把手带您无忧上云