在 K8S 中部署一个应用 下

这篇具有很好参考价值的文章主要介绍了在 K8S 中部署一个应用 下。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在 K8S 中部署一个应用 下

接着上一篇继续部署应用到 K8S中

之前简单部署的简单集群,三个工作节点是运行在 docker 和 kubelet 的,还有一个是控制节点

ReplicationController , pod 和 service 本次关系

之前有提到 ReplicationController , pod 和 服务是如何组合在一起的呢?

可以通过这张如图来解释一下

在 K8S 中部署一个应用 下

我们之前创建 pod 的时候不是直接创建的,是通过 docker run 来创建的一个 replicationController ,然后基于 rc 来创建的一个 pod 实例

为了让 pod 能够被外部访问到,所以我们需要让 K8S 将 replicationController 管理的所有 pod 由一个服务对外暴露,因此有了 kubia-http

  • 服务是有对外暴露 IP 的,请求打到 service 上
  • service 将请求转到 pod 上面的 9999 端口上,然后 pod 提供服务

ReplicationController 角色是啥样的

通过上面的案例,我们应该知道 ReplicationController实际上是用于复制 pod 的,通过 ReplicationController 来创建多个 pod 副本

ReplicationController 始终确保存在一个运行中的 pod 实例

在 K8S 中部署一个应用 下

如果我们上面创建的 pod 消失了,那么 ReplicationController 将会创建一个新的 pod 来替换消失的 pod

为什么需要 service

再来看看 service ,也就是上面 kubia-http 服务

为什么需要服务,有了 pod ,还拿 service 干啥?

通过上面的 ReplicationController 我们知道,pod 消失之后, ReplicationController 会再创建一个新的将其替换

那么我们也知道,每一个 pod 都有自己的独立的主机名和 IP

pod 在环境中会因为任何原因直接挂掉和消失,然后又被新的 pod 替换,这个时候 pod 的 IP 变化了,外部如何正确访问到我们的服务呢?

在 K8S 中部署一个应用 下

这个时候就需要 service 了

  • service 可以解决不断变化的 pod IP 问题
  • service 可以在一个固定 IP 和端口上对外暴露多个pod

当一个 service 被创建的时候,会得到一个静态的 IP,在 service 整个生命周期中,它的 IP 是不会变的

客户端只需要通过这个固定 IP 连接服务即可,服务会将请求转到 内部其中一个 pod, 客户端不需要关心 pod 在哪里,只需要关系 service 在哪里即可

增加副本数量

当前的系统里面只有的一个副本,现在我们可以增加到 3 个副本

我们可以通过指令 kubectl get replicationcontrollers 来查看当前的副本数

可以通过 kubectl scale rc mykubia --replicas=3,来将副本数调整至 3 个

  • 我们执行上面这个指令,只是告诉 K8S 系统中期望的副本数量,并没有告诉 K8S 需要如何去操作,如何去实现

  • K8S 自身会去检查当前的状态是否和期望的状态一致,如果不一致就会进行调整, 这个是 K8S 中基本的原则之一

我们用到的指令中,好多都是 kubectl get xxx 的,就是获取对应的 pod,service ,rc 等等信息的

其实我们也可以直接执行 kubectl get,这样可以列出所有可能类型的对象,还能够显示缩写

最新的系统状态

通过执行上述的指令,系统中将 1 个副本,调整成了 3 个副本

这就是 K8S 可以轻易的做到水平伸缩,我们要扩充副本的时候,再也不需要手动的去安装和运行其他副本了,只用执行指令,修改期望数量即可

当然,我们放进 pod 的服务,也需要做成无状态,可横向扩展的,这样才能更好的使用 K8S 的能力

这样子的话,最新的系统应该是这个样子的

在 K8S 中部署一个应用 下

外部请求打到 service 上面,service 会将请求给到 任意一个 pod ,对应的 pod 即提供服务即可

今天就到这里,学习所得,若有偏差,还请斧正

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

在 K8S 中部署一个应用 下

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~
更多的可以查看 零声每晚八点直播:https://ke.qq.com/course/417774添加链接描述文章来源地址https://www.toymoban.com/news/detail-497677.html

到了这里,关于在 K8S 中部署一个应用 下的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • jenkins部署K8S应用

      PS:这种方式是jenkins独立,然后slave已容器方式运行,master是独立出来的,减少运维成本,还能提高效率。 如果使用master部署需要把master加入k8s集群 jenkins安装不赘述 在k8s-master节点上生成对应的证书 在jenkins里添加凭据 凭据类型选Certificate 上传cert.pfx,输入刚才设置的密码

    2024年02月04日
    浏览(37)
  • 使用kubeadm方式快速部署一个K8S集群

    目录 一、环境准备 二、环境初始化  三、在所有主机上安装相关软件 1、安装docker 2、配置k8s的yum源 3、安装kubelet、kubeadm、kubectl 四、部署Kubernetes Master 五、加入Kubernets Node 六、部署CNI网络插件 七、测试k8s集群 我的是CentOS7系统,然后准备三台虚拟主机 一台master,和两台no

    2024年02月11日
    浏览(60)
  • Jenkins使用k8s部署应用

    1、jenkins在k8s内部署(请参考其他人的文章) 2、jenkins安装kubenents相关插件 3、配置k8s云         非常重要,目的是实现jenkins可以远程调用k8s进行部署,并可实现安装jenkins-slave进行构建。使得不再依赖jenkins单机能力进行构建,比较适合一定规模的公司。  插件安装后,打开

    2024年02月15日
    浏览(60)
  • 【Go】K8s 管理系统项目[Jenkins Pipeline K8s环境–应用部署]

    考虑到实际工作中前后端可能是不同的同学完成,一般Api部分完成后改动会比较小,web部分改动会比较频繁.于是将api和web分了2个pipeline实现 docker目录存放镜像构建相关文件 k8s-plantform-api 存放api部分代码 Jenkinsfile用作pipeline配置 yaml用作生成k8s下k8s-plantform-api相关资源 1.1.1 docker目

    2023年04月08日
    浏览(55)
  • K8S应用笔记 —— 部署Dolphinscheduler及简单应用(一)

    Apache DolphinScheduler 是一个分布式易扩展的可视化 DAG 工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。 Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用程序提供数据和各种 OPS 编排中

    2024年02月07日
    浏览(41)
  • Kubernetes技术--使用kubeadm快速部署一个K8s集群

    这里我们配置一个 单master集群 。( 一个Master节点,多个Node节点 ) 1.硬件环境准备 一台或多台机器,操作系统 CentOS7.x-86_x64 。这里我们使用安装了CentOS7的三台虚拟机 硬件配置 : 2GB或更多RAM , 2个CPU或更多CPU , 硬盘30GB或更多 2.主机名称和IP地址规划 3. 初始化准备工作 (1).关

    2024年02月10日
    浏览(51)
  • 【云原生、k8s】管理Kubernetes应用搭建与部署

    官方提供Kubernetes部署3种方式 (一)minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用。不能用于生产环境。 官方文档:https://kubernetes.io/docs/setup/minikube/ (二)二进制包 从官方下载发行版的二进制包,手动部署每个组件,

    2024年01月21日
    浏览(71)
  • 用Kubernetes(k8s)的ingress部署https应用

    我之前有一片文章写的是用ingress暴露应用,这篇文章接着上一片文章继续讲使用ingress暴露https的应用。请先参考上一片文章将ingress先在Kubernetes集群当中安装上: ingress暴露应用文章地址:https://blog.csdn.net/m0_51510236/article/details/132536519 因为是暴露https,所以需要域名证书。分以

    2024年02月10日
    浏览(43)
  • 应用打包部署k8s (包括dockerfile打包及仓库上传)

    小唐的项目主要是(mysql+jar+vue),然后所有项目都是打包好了的,然后现在我们用docker run 来测试一下 1.存储文件夹 并将我们的sql文件转移至init 在编写mysql文件之前,我们可以先使用docker镜像的方式去看看我们的sql文件是否可以正确导入至我们的容器 2.准备好对于位置 3.运

    2024年02月11日
    浏览(64)
  • 云原生Kubernetes:简化K8S应用部署工具Helm

    目录 一、理论 1.HELM ​编辑 2.部署HELM2 3.部署HELM3(2to3方式) 4.部署HELM3(单独安装) 二、实验 1.部署 HELM2 2.部署HELM3(2to3方式) 3.部署HELM3(单独安装) 三、问题 1.api版本过期 2.helm初始化报错 3.pod状态为ImagePullBackOff 4.helm 命令显示 no repositories to show 的错误 5.Helm安装报错

    2024年02月07日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包