从容器到k8s,演变过程和具体案例分享

2023-05-16

▲ 点击上方"DevOps和k8s全栈技术"关注公众号

Kubernetes(k8s)是一种开源的容器编排平台,它能够管理和自动化容器化的应用程序的部署、扩展和运行。Kubernetes 可以与 Docker 等容器运行时(runtime)一起使用,但是它本身并不包含容器运行时,它是一种将多个容器组织起来协同工作的平台。

Kubernetes 的容器编排是通过定义一组对象来完成的,这些对象可以描述容器、容器集合和它们之间的关系。这些对象包括:

  • Pod: 一个或多个容器的集合,它们共享网络和存储资源,并可以在同一个节点上调度运行。

  • Service: 一种可以访问一组 Pod 的抽象方式,它为 Pod 提供一个稳定的网络地址和一个 DNS 名称,这样可以轻松地对它们进行负载均衡和发现。

  • ReplicaSet: 一种保证指定数量 Pod 副本运行的控制器,当 Pod 副本数少于指定数量时,它会自动创建新的副本;当 Pod 副本数多于指定数量时,它会自动删除多余的副本。

  • Deployment: 一种管理 ReplicaSet 的高级控制器,它提供滚动更新和回滚功能,可以无缝地升级和降级应用程序的版本。

Kubernetes 与 Docker 的关系是,Kubernetes 本身并不包含容器运行时,它只是一种管理容器的平台。而 Docker 则是一种容器运行时,它可以运行容器,并且还提供了构建、打包和分享容器的工具。

Docker 发展到 Kubernetes 的过程是因为 Docker 的容器编排功能有限,只能实现基本的容器管理,无法处理复杂的容器部署和管理需求。Kubernetes 则可以处理更复杂的容器管理任务,例如多个容器的协同工作、负载均衡、自动扩展等。

以下是一个 Kubernetes 的实战案例:

  1. 部署应用程序

假设有一个名为 myapp 的应用程序,需要将它部署到 Kubernetes 集群中。可以使用以下命令创建一个 Deployment 对象,将 myapp 部署为一个 Pod:

$ kubectl create deployment myapp --image=myapp:1.0
  1. 暴露服务

为了让其他 Pod 或外部用户能够访问 myapp,需要创建一个 Service 对象。可以使用以下命令将 myapp 暴露为一个 NodePort 类型的 Service:


  
$ kubectl expose deployment myapp --type=NodePort --port=80
  1. 扩展应用程序

当需要扩展应用程序时,可以使用以下命令来增加 Pod 副本的数量:

$ kubectl scale deployment myapp --replicas=3

此命令将在集群中创建三个 myapp 的 Pod 副本。

  1. 滚动更新应用程序

如果需要更新应用程序的版本,可以使用以下命令来滚动更新:

$ kubectl set image deployment/myapp myapp=myapp:2.0

此命令将 myapp 的镜像版本从 1.0 更新为 2.0,并开始滚动更新所有 Pod 副本。在此过程中,Kubernetes 将自动保持一定数量的旧 Pod 副本,以确保应用程序的可用性。

  1. 回滚应用程序

如果更新过程中出现问题,可以使用以下命令回滚应用程序的版本:

$ kubectl rollout undo deployment/myapp

此命令将回滚 myapp 的版本,并重新创建旧版本的 Pod 副本。

这只是 Kubernetes 的一个基本示例,实际上 Kubernetes 还有很多高级功能,例如自动扩展、高可用性、多租户支持等。要深入了解 Kubernetes 的更多内容,可以参考 Kubernetes 的官方文档。

精彩文章推荐

年底了,总结下这一年,收获满满

看看kubernetes在2022年的这11个数据

Kuberentes 上 GitOps 最佳实践

Kubernetes常见的日常故障处理指南|干货分享|适合各类基础人员学习

K8S大规模集群优化方案系列文章-第一篇

线上问题解决-socket: too many open files(打开的文件过多)

Jenkins使用ssh从git仓库拉取代码

无法从另一个容器访问Docker容器中的MySQL数据库|解决方案

CentOS 8/7宣布停用后,有哪些最佳替代方案?|个人推荐rocky linux

k8s集群calico网络故障排查思路

k8s证书过期之后如何自动续订证书

在 Kubernetes 上调用 GPU

linux系统常用命令大全

作者微信:luckylucky421302

bf2593a9ba2403ac2dab71c94543479f.png

             点亮收藏,服务器10年不宕机a8aab7367de54c221ad8af92f300b7fa.gif

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从容器到k8s,演变过程和具体案例分享 的相关文章

  • k8s之ReplicaSet

    我们在定义pod资源时 可以直接创建一个kind Pod类型的自主式pod 但是这存在一个问题 假如pod被删除了 那这个pod就不能自我恢复 就会彻底被删除 线上这种情况非常危险 所以今天就给大家讲解下pod的控制器 所谓控制器就是能够管
  • centos 安装k8s

    第一步 每台机子都做 关闭防火墙 systemctl stop firewalld systemctl disable firewalld 第二步 每台机子都做 永久关闭selinux sed i s enforcing disabled
  • K8s中的Deployment

    Deployment是kubernetes在1 2版本中引入的新概念 用于更好的解决Pod的编排问题 为此 Deployment在内部使用了ReplicaSet来实现目的 我们可以把Deployment理解为ReplicaSet的一次升 级
  • DHorse系列文章之操作手册

    在介绍DHorse的操作之前 我们先来看一下发布一个系统的流程是什么样的 发布系统的流程 我们以一个Springboot系统为例 来说明一下发布流程 1 首先从代码仓库下载代码 比如Gitlab 2 接着是进行打包 比如使用Maven 3
  • CNI Plugin 介绍

    CNI 插件包括两种类型 CNI Plugin 和 IPAM IP Address Management Plugin CNI Plugin 负责为容器配置网络资源 IPAM Plugin 负责对容器的 IP 地址进行分配和管理 IPAM
  • Liveness、Readiness 和 Startup Probes

    liveness apiVersion v1 kind Pod metadata labels test liveness name liveness exec spec containers name liveness image k8s
  • k8s安装遇到过的一些问题

    无法获取recomended yaml文件 root k8master1 wget https raw githubusercontent com kubernetes dashboard v2 7 0 aio deploy recomme
  • K8s-yaml的使用及命令

    YAML配置文件管理对象 对象管理 创建deployment资源 kubectl create f nginx deployment yaml 查看deployment kubectl get deploy 查看ReplicaSet kub
  • docker的联合文件系统(UnionFS)

    docker最大的贡献就是定义了容器镜像的分层的存储格式 docker镜像技术的基础是联合文件系统 UnionFS 其文件系统是分层的 这样既可以充分利用共享层 又可以减少存储空间占用 联合挂载系统的工作原理 读 如果文件在upperdir
  • 初学容器:Docker

    1 环境初始化 1 1 安装git vim curl等常用工具 sudo apt update sudo apt install y git vim curl jq 1 2 ubuntu是不支持远程连接的 需要安装ssh服务 sudo ap
  • Rancher 全球化部署最佳实践

    作者 万绍远 CNCF 基金会官方认证 Kubernetes CKA CKS 工程师 云原生解决方案架构师 对 ceph Openstack Kubernetes prometheus 技术和其他云原生相关技术有较深入的研究 参与设计并实施
  • kubeadm构建(Calico+Dashboard+Containerd)

    文章目录 前言 一 环境 二 部署容器网络 CNI master操作 1 下载yamll 2 修改yaml 3 部署 三 部署 Dashboard 1 下载yaml 2 修改yaml 3 部署 4 创建管理员 四 切换容器引擎为Contai
  • kubectl常用命令

    alias k kubectl alias kc k create f alias kgp k get pods alias kdp k describe pods alias kdep k delete pods alias kl k l
  • k8s基础5——Pod常用命令、资源共享机制、重启策略和健康检查、环境变量、初始化容器、静态pod

    文章目录 一 基本了解 二 管理命令 三 yaml文件参数大全 四 创建pod的工作流程 五 资源共享机制 5 1 共享网络 5 2 共享存储 六 生命周期 重启策略 健康检查 七 环境变量 八 Init Containe初始化容器 九 静
  • Kubernetes + Dashboard 集群搭建

    1 环境说明 基于kubeadm工具部署k8s 集群 还有基于二进制的部署方式但是需要单独部署k8s的每个组件比较繁琐 kubeadm是 Kubernetes官 提供的 于快速部署Kubernetes集群的 具 基于Kubernetes v
  • k8备份与恢复-Velero

    简介 Velero 是一款可以安全的备份 恢复和迁移 Kubernetes 集群资源和持久卷等资源的备份恢复软件 Velero 实现的 kubernetes 资源备份能力 可以轻松实现 Kubernetes 集群的数据备份和恢复 复制 ku
  • K8S暴露端口-dubbo应用远程Debug

    1 Dockerfile增加环境变量 ENV JAVA OPTS Xdebug Xrunjdwp transport dt socket address 9901 server y suspend n 2 暴露端口 template ser
  • 国内k8s集群部署的几种方式

    前言 总所周知 由于某种原因 通过官方的方式在国内是无法顺利部署k8s集群的 这里记录下在国内部署的几种方式 部署方式 目前我所了解有以下几种方式 使用kubeadmin通过离线镜像的方式 网上教程和镜像包挺多的 通过厂商集成的方式如 ra
  • k8s部署Prometheus抓取pods的metrics

    1 暴露pods给Prometheus抓取 spec replicas app replicas template metadata annotations prometheus io scrape true prometheus io p
  • flannel和calico区别

    k8s网络模式 Flannel数据包在主机间转发是由backend实现的 目前已经支持UDP VxLAN host gw等多种模式 VxLAN 使用内核中的VxLAN模块进行封装报文 也是flannel推荐的方式 host gw虽然VXLA

随机推荐

  • java核心内容——int和Integer有什么区别?

    java核心内容 int和Integer有什么区别 xff1f 1 典型回答2 知识扩展1 理解自动装箱 拆箱2 源码分析3 原始类型线程安全4 Java 原始数据类型和引用类型局限性 1 典型回答 int 是我们常说的整形数字 xff0c
  • docker虚拟机(可显示界面)

    1 docker是什么 xff1f 官方解释是容器 xff0c 是一种轻量化的虚拟机 与virtual box等虚拟机应用相比 xff0c 个人的使用体验是 xff0c 更加的方便快捷 xff0c 适合一个应用起一个虚拟机 2 docker
  • 编译DBoW2出现:fatal error: opencv/cv.h: 没有那个文件或目录 错误

    解决方法 xff1a 将各文件中的 include lt opencv cv h gt 替换为 include lt opencv2 opencv hpp gt 即可 另外 xff0c ORB SLAM要求OpenCV 3 0 xff0c
  • 揭晓3类AI无法取代的工作,高学历竟没有优势!

    整理 朱珂欣 出品 CSDN程序人生 xff08 ID xff1a coder life xff09 上周 xff0c IBM 就打响 AI 取代潮 的第一枪 xff0c CEO Arvind Krishna 在接受彭博社采访时表示 xff
  • 嵌入式Linux书籍清单

    原文链接 xff1a 重磅推荐 嵌入式Linux书籍清单 Linux入门C语言数据结构ARM裸机Linux驱动Linux应用Shell脚本Makefile Linux入门 作为嵌入式开发人员 xff0c 我们没有必要把精力放到使用哪个Lin
  • STM32串口之环形队列接收数据

    原文链接 xff1a STM32串口之环形队列接收数据 码代码的应该学数据结构都学过队列 环形队列是队列的一种特殊形式 xff0c 应用挺广泛的 因为有太多文章关于这方面的内容 xff0c 理论知识可以看别人的 xff0c 下面写得挺好的
  • Ubuntu18下xsens IMU的驱动安装及使用imu_utils标定

    最近在做xsens IMU的标定工作 xff0c 网上资源很多很杂 xff0c 打算按自己的操作过程 细节及遇到的问题记录一下 xff0c 里面有参考的博文都附了链接 主体可参考此博文 xff1a VIO 中 IMU 的标定流程 1 3 i
  • 常见 Promise 面试问题

    前端面试过程中 xff0c 基本都会问到 Promise xff0c 如果你足够幸运 xff0c 面试官问的比较浅 xff0c 仅仅问 Promise 的使用方式 xff0c 那么恭喜你 事实上 xff0c 大多数人并没有那么幸运 所以 x
  • k8s1.18高可用集群安装-超详细中文官方文档

    前言 这篇文章会带领大家去安装k8s1 18的高可用集群 xff0c 如果你是初学小白 xff0c 只要跟着做 xff0c 也能保证100 完成安装 xff0c 下面开始我们的安装之旅吧 xff0c 内容较多 xff0c 都是干货 心灵鸡汤
  • Kubernetes中部署MySQL高可用集群

    MySql简介 MySQL是一个关系型数据库管理系统 xff0c 由瑞典MySQL AB 公司开发 xff0c 属于 Oracle 旗下产品 MySQL 是最流行的关系型数据库管理系统之一 xff0c 在 WEB 应用方面 xff0c My
  • openstack安装和使用

    前言 本篇文章会介绍openstack的安装 openstack各组件的配置和功能 还会演示openstack云主机的创建流程 xff0c 整篇文章花费一天时间完成 xff0c 万字长文 xff0c 需要的可以关注 xff0c 相互学习 x
  • 通过helm部署gitlab服务

    微信公众号搜索DevOps和k8s全栈技术 xff0c 即可关注我的公众号 xff0c 也可通过扫描文章最后的二维码关注 xff0c 每天都会分享技术文章供大家参考阅读 xff0c 拥抱开源 xff0c 同大家共同进步 xff01 标题错了
  • k8s部署Zipkin搭配Kafka+ElasticSearch实现链路追踪

    微信公众号搜索DevOps和k8s全栈技术 xff0c 即可关注我的公众号 xff0c 也可通过扫描文章最后的二维码关注 xff0c 每天都会分享技术文章供大家参考阅读 xff0c 拥抱开源 xff0c 同大家共同进步 xff01 xff0
  • 全了!2020年互联网大厂的薪资和职级一览!(阿里巴巴、腾讯、百度、字节跳动、华为、京东、美团、滴滴、小米 9 家)...

    以 BAT 为代表的互联网大厂 xff0c 一直是求职者眼中的香饽饽 xff0c 大厂经历 在国内就业环境中无异于一块金子招牌 对于企业和HR来说 xff0c 大厂的职级规则也是整个行业的标杆 xff0c 从中小微企业到大型企业 xff0c
  • 降本增效!英特尔降薪裁员,网友:省钱发股息?

    整理 朱珂欣 出品 CSDN程序人生 xff08 ID xff1a coder life xff09 当硅谷的寒风吹过 xff0c 大家都难逃 窘境 近日 xff0c 据外媒 siliconangle 报道 xff0c 英特尔正计划裁员中
  • K8s 超详细总结!

    一个目标 xff1a 容器操作 xff1b 两地三中心 xff1b 四层服务发现 xff1b 五种Pod共享资源 xff1b 六个CNI常用插件 xff1b 七层负载均衡 xff1b 八种隔离维度 xff1b 九个网络模型原则 xff1b
  • Kubernetes 1.21正式发布 | 主要变化解读

    我们很高兴地宣布 Kubernetes 1 21 的发布 xff0c 这是我们 2021 年的第一个版本 xff01 这个版本包含 51 个增强功能 xff1a 13 个增强功能升级为稳定版 xff0c 16 个增强功能升级为 beta 版
  • k8s之DNS服务器搭建

    一 导读 在使用k8s部署springboot 43 redis简单应用这篇文章中 xff0c spring boot连接redis是直接使用的IP连接 xff0c 那么可不可以直接使用服务名称进行连接呢 xff1f 答案是可以的 xff0
  • linux系统常用命令大全

    点击上方 34 DevOps和k8s全栈技术 34 关注公众号 Linux 是一个广泛使用的操作系统 xff0c 被用于服务器 嵌入式系统和个人电脑等领域 在 Linux 中 xff0c 命令行是一个非常重要的工具 xff0c 它可以让用户
  • 从容器到k8s,演变过程和具体案例分享

    点击上方 34 DevOps和k8s全栈技术 34 关注公众号 Kubernetes xff08 k8s xff09 是一种开源的容器编排平台 xff0c 它能够管理和自动化容器化的应用程序的部署 扩展和运行 Kubernetes 可以与