kubernetes系列之开发人员需要了解的

Posted stand_heo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kubernetes系列之开发人员需要了解的相关的知识,希望对你有一定的参考价值。

用上k8s的先决条件

程序容器化部署,最好是linux容器。比如c#的.net framework4.5的程序就不行

需要了解的基础概念

pod

pod是k8s中进行调度的最小单位,里边运行着一个或者多个docker容器,包含具体的业务服务

node

node就是真正的节点(服务器),主要包含运行控制器的master节点和运行负载(我们的程序)的worker节点,多个节点组成cluster

service

service是k8s中最核心的概念,服务,后边隐藏着n个pod,在集群内部的程序只需要通过服务名字就可以访问到某一个服务,这种服务名称类似于一个域名,访问服务的时候类似于通过nginx访问,nginx会将请求进行负载均衡转发到某个具体执行请求的服务器(pod)上去

ingress

service是用于集群内部访问用的,外部的服务想要访问就可以通过ingress,将service映射到具体的外部能访问的域名上去

k8s帮我们做的

容器编排,自动调度

k8s会自动选择最优的节点进行pod的调度,当某个pod挂掉之后会使用最优算法找到最适合的节点重新再运行一个pod来维持预设的pod数量,以保证服务的质量

服务注册、发现

集群内部可以使用service的名字轻松地进行访问,而不用管服务后端的pod有多少个,是不是掉线了,是不是又新增了节点,k8s自动帮我们进行了相关的管理控制

网络访问

k8s自定义了一套网络,在这套网络体系里边节点可以相互容器的进行访问,就好像每个pod都有一个独立的ip地址,我们不用进行任何端口映射之类的就可以轻松地访问任意节点上的服务

扩容限流、自动分配调度

k8s中可以很轻松地实现扩容和限流,不需要业务应用程序做任何控制,即程序中无任何此类aop之类的代码

总结

k8s基于服务层面帮我们做了很多的事情,我们的业务代码无需关心非业务逻辑,比如扩容限流、服务注册发现等等,它将这些业务能力上浮到k8s框架平台统一进行控制和处理,我们的业务代码无需加入任何的sdk、dll之类的引用即可获得这些高级的能力。我们可以将更多的精力放在业务逻辑的优化上,如果有时间和精力,可以学习了解更多k8s的知识,可以帮助我们更好地管理我们地集群。此外,k8s是完全开源的,如果遇到问题实在找不到解决方案的时候,可以自己去读响应模块的源码。

以上是关于kubernetes系列之开发人员需要了解的的主要内容,如果未能解决你的问题,请参考以下文章

哪些人适合学习嵌入式? 你需要掌握哪些的要点?

找到Kubernetes原生的数据保护方法

Kaggle系列之预测泰坦尼克号人员的幸存与死亡(随机森林模型)

漏洞根源在于人——知识深度篇

开发人员Kubernetes的实用介绍

云开发|Cloud Native DevOps with Kubernetes