当前位置:首页 > 数码 > K8s-容器化运行编排工具-Kubernetes (k8s容器启动失败)

K8s-容器化运行编排工具-Kubernetes (k8s容器启动失败)

admin1个月前 (04-17)数码13

背景

终于进入大家都比拟感兴味的服务网格系列了,在前面曾经解说了:

基本上曾经够咱们开发普通规模的web运行了;但在企业中往往有着复杂的运行调用相关,运行与运行之间的恳求也要求启动治理。比如经常出现的限流、升级、trace、监控、负载平衡等性能。

在咱们经常使用kubernetes之返回往都是由微服务框架来处置这些疑问,比如Dubbo、SpringCloud都有对应的性能。

但当咱们上了kubernetes之后这些事件就应该交给一个专门的云原生组件来处置,也就是本次会讲到的Istio,它是目前经常使用最为宽泛的服务网格处置打算。

图片

官网关于Istio的解释比拟繁复,落到详细的性能点也就是刚才提到的:

图片

再结合官网的架构图可知:Istio分为控制面controlplane和数据面dataplane。

控制面可以了解为Istio自身的治感性能:

而数据面可以便捷的把他了解为由Envoy代理的咱们的业务运行,咱们运行中一切的流量进出都会经过Envoy代理。

所以它可以成功负载平衡、熔断包全、认证授权等性能。

装置

首先装置Istio命令行工具

经常使用:

curl-L|sh-

可以经常使用brew:

brewinstallistioctl

其余环境可以下载Istio后性能环境变量:

exportPATH=$PWD/bin:$PATH

之后咱们可以经常使用install命令装置控制面。

istioctlinstall--setprofile=demo-y

图片

这个的profile还有以下不同的值,为了展示咱们经常使用demo即可。

图片

经常使用

#开启default命名空间智能注入$klabelnamespacedefaultistio-injectinotallow=enabled$kdescribensdefaultName:defaultLabels:istio-injectinotallow=enabledkubernetes.io/metadata.name=defaultAnnotations:<none>Status:ActiveNoresourcequota.NoLimitRangeresource.

之后咱们为namespace打上label,使得Istio控制面知道哪个namespace下的Pod会智能注入sidecar。

这里咱们为default这个命名空间关上智能注入sidecar,而后在这里部署咱们之前经常使用到的deployment-istio.yaml

$kly-fdeployment/deployment-istio.yaml$kgetpodNAMEREADYSTATUSRESTARTSk8s-combat-service-5bfd78856f-8zjjf2/2Running0k8s-combat-service-5bfd78856f-mblqd2/2Running0k8s-combat-service-5bfd78856f-wlc8z2/2Running0

此时会看到每个Pod有两个contner(其中一个就是istio-proxysidecar),也就是之前做gRPC负载平衡测试时的代码。

图片

还是启动负载平衡测试,成果是一样的,说明Istio起作用了。

此时咱们再观察sidecar的日志时,会看到刚才咱们所收回和接遭到的流量:

$klogs-fk8s-combat-service-5bfd78856f-wlc8z-cistio-proxy[2023-10-31T14:52:14.279Z]"POST/helloworld.Greeter/SayHelloHTTP/2"200-via_upstream-"-"1261149"-""grpc-go/1.58.3""6d293d32-af96-9f87-a8e4-6665632f7236""k8s-combat-service:50051""172.17.0.9:50051"inbound|50051||127.0.0.6:42051172.17.0.9:50051172.17.0.9:40804outbound_.50051_._.k8s-combat-service.default.svc.cluster.localdefault[2023-10-31T14:52:14.246Z]"POST/helloworld.Greeter/SayHelloHTTP/2"200-via_upstream-"-"12615839"-""grpc-go/1.58.3""6d293d32-af96-9f87-a8e4-6665632f7236""k8s-combat-service:50051""172.17.0.9:50051"outbound|50051||k8s-combat-service.default.svc.cluster.local172.17.0.9:4080410.101.204.13:50051172.17.0.9:54012-default[2023-10-31T14:52:15.659Z]"POST/helloworld.Greeter/SayHelloHTTP/2"200-via_upstream-"-"12613534"-""grpc-go/1.58.3""ed8ab4f2-384d-98da-81b7-d4466eaf0207""k8s-combat-service:50051""172.17.0.10:50051"outbound|50051||k8s-combat-service.default.svc.cluster.local172.17.0.9:3980010.101.204.13:50051172.17.0.9:54012-default[2023-10-31T14:52:16.524Z]"POST/helloworld.Greeter/SayHelloHTTP/2"200-via_upstream-"-"12612826"-""grpc-go/1.58.3""67a22028-dfb3-92ca-aa23-573660b30dd4""k8s-combat-service:50051""172.17.0.8:50051"outbound|50051||k8s-combat-service.default.svc.cluster.local172.17.0.9:4458010.101.204.13:50051172.17.0.9:54012-default[2023-10-31T14:52:16.680Z]"POST/helloworld.Greeter/SayHelloHTTP/2"200-via_upstream-"-"126122"-""grpc-go/1.58.3""b4761d9f-7e4c-9f2c-b06f-64a028faa5bc""k8s-combat-service:50051""172.17.0.10:50051"outbound|50051||k8s-combat-service.default.svc.cluster.local172.17.0.9:3980010.101.204.13:50051172.17.0.9:54012-default

总结

本期的内容比拟便捷,关键和装置性能相关,下一期更新如何性能外部服务调用的超时、限流等性能。

其实目前大局部操作都是偏运维的,即使是后续的超时性能等性能都只是编写yaml资源。

但在消费经常使用时,咱们会给开发者提供一个治理台的可视化页面,可供他们自己灵敏性能这些原本要求在yaml中性能的性能。

图片

Kubernetes

其实各大云平台厂商都有提供相似的才干,比如阿里云的EDAS等。

本文的一切源码在这里可以访问:


k8如何正确操作

Kubernetes(简称k8s)是一种流行的容器编排工具,用于部署、管理和扩展容器化应用程序。 您需要学习和掌握Kubernetes的使用方法和经验才能正确使用。 在开始使用Kubernetes之前,需要了解Kubernetes的核心概念和术语,例如Pod、Service、ReplicaSet、Deployment等。 需要了解Kubernetes的架构,包括Master和Node的角色以及它们之间的交互方式,如何安装和配置Kubernetes,以及如何访问Kubernetes集群,选择一个合适的Kubernetes管理工具,例如kubectl、Helm等,遵循最佳实践,例如使用标签和注释、定期备份等,注意安全性和可靠性,例如使用安全证书、网络隔离等,了解如何调试和故障排除,例如查看日志、执行命令等,了解如何扩展和升级Kubernetes集群,例如增加节点、更新镜像等。 总之,学习和掌握Kubernetes需要一定的时间和经验,但只要您有足够的耐心和实践,就可以逐步掌握正确的操作方式。

Kubernetes介绍

Kubernetes(简称K8S)是2014年10月由Google开源的生产级 容器编排系统 ,是Google多年大规模容器管理技术Borg的开源版本

Kurbernets的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。它的目的就是实现资源管理的自动化,主要提供了如下的主要功能:

微服务和容器的流行。微服务是把原来一体化的应用转换为一个个相互独立(高内聚低耦合)的小应用,这些小应用就叫微服务。一个应用如果有成千上万的微服务,那么微服务的部署会很麻烦。一台机器可能部署多个微服务。对微服务进行隔离和资源控制(微服务的支持调度计划)就需要用到容器。

容器是一系列隔离运行的进程,提供了一种轻量操作系统层面的虚拟化技术。

K8S默认使用Docker引擎

容器虽然解决了应用打包、部署、运行的问题(一次构建、随处运行Build,Ship and Run Any App,Anywhere),但是也面临了跨机器的部署、资源调度、负载均衡、自动伸缩、容错处理、服务发现的挑战。

容器编排系统 Mesos:Apache的一个资源统一管控的工具,需要和Marathon结合使用(Spark最初依赖的资源集群管理系统,并不特定于容器,在应用的层面来看几百台机器是一台大的机器由Mesos分配) Docker Swarm:Docker自己的容器编排工具 Kubernetes:谷歌开源的容器编排工具

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: K8s

“K8s-容器化运行编排工具-Kubernetes (k8s容器启动失败)” 的相关文章

升级就崩溃-版本以解决稳定性问题-Kubernetes-LTS-需要长期支持 (升级卡住了)

升级就崩溃-版本以解决稳定性问题-Kubernetes-LTS-需要长期支持 (升级卡住了)

Kubernetes LTS 版本:稳定性与灵活性的平衡 Kubernetes 频繁升级带来的挑战 Kubernetes(K8s)以其快速的发展速度而闻名,但频繁的升级也给运维团队带来了巨大的挑...

Kubernetes-Wasm-的宏图-开启融合之路-拥抱 (kubernetes)

Kubernetes-Wasm-的宏图-开启融合之路-拥抱 (kubernetes)

概述 WebAssembly (Wasm) 是一种二进制格式,可将代码编译为可以在各种环境中运行的低级目标文件。Wasm 最初为在浏览器中运行 Web 应用程序而设计,但已扩展到服务器和嵌入式系...

实战指南-K8s-五分钟速成 (实战指南书页)

实战指南-K8s-五分钟速成 (实战指南书页)

在Kubernetes中,Probe探針是一種實用的功能,可以用於控制應用程式的優雅上線和監控其健康狀況。本篇文章將深入探討Probe探針的相關概念和用法。 就緒探針 就緒探針主要用於...

K8s-从基础到进阶-部署方式大全-掌握所有技巧 (基于k8s)

K8s-从基础到进阶-部署方式大全-掌握所有技巧 (基于k8s)

Kubernetes 是一个流行的容器编排平台,用于部署、管理和扩展容器化应用程序。 为了简化 Kubernetes 集群的部署和管理,有各种工具可用。 kubeadm kub...

终极指南-组件全解析-K8s-提醒你要求知道的秘密 (终极指南针下载手机版)

终极指南-组件全解析-K8s-提醒你要求知道的秘密 (终极指南针下载手机版)

当你部署完Kubees,便领有了一个完整的集群。 Kubernetes,作为目前最盛行和宽泛驳回的容器编排和治理平台,面前有一系列弱小的组件,独特单干以成功容器化运行的智能化部署、弹性裁减、...