云原生
文章平均质量分 90
docker,k8s
征服bug
拥有Linux,MySql数据库,Docker容器等实战经验,K8s容器控制等,了解使用CI/CD,和自动化运维,等常用运维服务和工具,了解JAVA,Python语言,欢迎大佬们多多关照
加油学习自律 塑造更好的自己...
展开
-
现在公司都在用的CI/CD框架到底是什么?
综上所述,CI/CD 提供了快速交付、高质量和自动化的好处,但在实施过程中也需要考虑配置和维护成本、文化变革、安全性和合规性等方面的挑战。每次构建、测试和部署都是基于相同的流程和环境,减少了人为因素的影响,提高了软件交付的一致性和可靠性。可以根据团队的技术栈和偏好选择适合的工具,同时考虑集成和兼容性的因素,以确保顺畅的 CI/CD 实施。通过频繁地集成和交付,团队成员可以及时了解彼此的工作进展和变更,减少代码冲突和集成问题,并能够更好地合作解决出现的问题。原创 2023-09-24 22:53:22 · 27459 阅读 · 1 评论 -
【云原生】k8s新版本与Docker和Containerd的关联关系
在较新版本的 Kubernetes 中,Docker 和 Containerd 之间的关系是相互独立的,而不是替代关系。具体来说,Kubernetes 1.20 版本之后,默认推荐使用 Containerd 作为容器运行时,而不再依赖于 Docker。Kubernetes 1.20 版本引入了 CRI(Container Runtime Interface)的稳定版本,它定义了 Kubernetes 与容器运行时之间的标准接口。原创 2023-09-23 22:46:26 · 25250 阅读 · 0 评论 -
华为云云耀云服务器L实例评测|评测使用
中断和恢复:云服务器会受到定期和不可预测的服务中断的影响,通常是由于提供商环境中的故障或意外的网络中断。使用传统的集中式数据中心,用户仍然可以在全球范围内访问工作负载,但网络延迟和中断可能会降低地理位置较远的用户的性能。专用云服务器:除虚拟云服务器外,云提供商还可以提供物理云服务器,也称为裸机服务器,它实际上将云提供商的物理服务器专用于用户。性能:由于云服务器通常是多租户环境,并且用户无法直接控制这些服务器的物理位置,因此 VM 可能会受到同一硬件上其他云服务器的过多存储或网络需求的不利影响。原创 2023-09-17 13:21:35 · 31325 阅读 · 2 评论 -
【云原生】kubernetes应用程序包管理工具Helm
官网地址:HelmHelm是一个Kubernetes应用程序包管理工具,它允许你轻松管理和部署Kubernetes应用程序。Helm通过使用称为Charts的预定义模板来简化Kubernetes应用程序的部署和管理。Chart包含了一组Kubernetes对象定义,可以描述一个应用程序的完整部署和资源需求,包括Deployment、Service、ConfigMap、Secret等。使用Helm,你可以轻松地安装、升级、卸载和回滚Kubernetes应用程序。原创 2023-08-19 08:10:49 · 22321 阅读 · 1 评论 -
【云原生】k8s存储管理中ConfigMap & Secret的使用
在 Kubernetes 中,ConfigMap 是一种用于存储非敏感信息的 Kubernetes 对象。它用于存储配置数据,如键值对、整个配置文件或 JSON 数据等。ConfigMap 通常用于容器镜像中的配置文件、命令行参数和环境变量等。ConfigMap 可以通过三种方式进行配置数据的注入:环境变量注入:将配置数据注入到 Pod 中的容器环境变量中。配置文件注入:将配置数据注入到 Pod 中的容器文件系统中,容器可以读取这些文件。命令行参数注入:将配置数据注入到容器的命令行参数中。基本操作。原创 2023-08-19 08:05:25 · 23132 阅读 · 0 评论 -
【云原生】kuberneter中Helm入门到实践
helm在希腊语中的意思是:舵;驾驶盘。据说是helm创始人mutt butcher翻遍了航海手册找出来的,目的是为了找一个和kubernetes主题相匹配的词语。官方给出的解释是:Helm is the best way to find, share, and use software built for Kubernetes. 意思是helm是kubernetes中查找、分享、构建应用的最佳方式。原创 2023-08-18 11:02:17 · 23974 阅读 · 0 评论 -
【云原生】kubernetes关于存储(Volume)
在前面的例子中,我们提前创建了PV,然后通过 PVC 申请 PV 并在Pod 中使用,这种方式叫作静态供给 ( Static Provision)与之对应的是动态供给 (Dynamical Provision),即如果没有满足PVC 条件的PV,会动态创建 PV。开发人员要获得上面的信息,要么询问管理员,要么自己就是管理员。容器中的进程看到的文件系统视图是由它们的容器镜像的初始内容以及挂载在容器中的卷(如果定义了的话)所组成的。卷的核心是一个目录,其中可能存有数据,Pod 中的容器可以访问该目录中的数据。原创 2023-08-15 22:58:29 · 24184 阅读 · 0 评论 -
【云原生】kubernetes中Service深度学习
官网地址:服务(Service) | Kubernetes将运行在一个或一组 Pod 上的网络应用程序公开为网络服务的方法。通俗定义: Service 用来为 pod 提供网络服务的一种方式。原创 2023-08-15 22:49:35 · 12741 阅读 · 0 评论 -
【云原生】Kubernetes控制器中DaemonSet与Job的使用
DaemonSet确保全部(或者某些)节点上运行一个 Pod 的副本。当有节点加入集群时, 也会为他们新增一个 Pod。当有节点从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。DaemonSet 的一些典型用法:在每个节点上运行集群守护进程在每个节点上运行日志收集守护进程在每个节点上运行监控守护进程一种简单的用法是为每种类型的守护进程在所有的节点上都启动一个 DaemonSet。一个稍微复杂的用法是为同一种守护进程部署多个 DaemonSet;原创 2023-08-11 15:58:47 · 13027 阅读 · 0 评论 -
【云原生】Kubernetes控制器中StatefulSet的使用
官方地址:StatefulSet 是用来管理有状态应用的工作负载 API 对象。无状态应用: 应用本身不存储任何数据的应用称之为无状态应用。有状态应用: 应用本身需要存储相关数据应用称之为有状态应用。博客: 前端vue 后端 java mysql redis es ....数据采集: 采集程序 有状态应用StatefulSet 用来管理某 Pod 集合的部署和扩缩,并为这些 Pod 提供持久存储和持久标识符。原创 2023-08-11 15:54:56 · 12063 阅读 · 0 评论 -
【云原生】kubernetes控制器deployment的使用
Kubernetes 通常不会直接创建 Pod, 而是通过 Controller 来管理 Pod 的。Controller 中定义了 Pod 的部署特性,比如有几个副本、在什么样的 Node 上运行等。通俗的说可以认为 Controller 就是用来管理 Pod 一个对象。其核心作用可以通过一句话总结: 通过监控集群的公共状态,并致力于将当前状态转变为期望的状态。通俗定义: controller 可以管理 pod 让 pod 更具有运维能力。原创 2023-08-09 11:10:20 · 12947 阅读 · 0 评论 -
【云原生】Kubernetes节点亲和性分配 Pod
官方地址:你可以约束一个 Pod 以便其只能在特定的节点上运行, 或优先在特定的节点上运行。有几种方法可以实现这点,推荐的方法都是用来进行选择。通常这样的约束不是必须的,因为调度器将自动进行合理的放置(比如,将 Pod 分散到节点上, 而不是将 Pod 放置在可用资源不足的节点上等等)。但在某些情况下,你可能需要进一步控制 Pod 被部署到哪个节点。例如,确保 Pod 最终落在连接了 SSD 的机器上, 或者将来自两个不同的服务且有大量通信的 Pods 被放置在同一个可用区。原创 2023-08-09 11:01:32 · 12908 阅读 · 0 评论 -
【云原生】kubernetes在Pod中init容器的作用和使用
当所有的 Init 容器运行完成时, Kubernetes 才会为 Pod 初始化应用容器并像平常一样运行。如果 Pod 的 Init 容器失败,kubelet 会不断地重启该 Init 容器直到该容器成功为止。Init 容器是一种特殊容器,在Pod 内的应用容器启动之前运行。Init 容器支持应用容器的全部字段和特性,包括资源限制、数据卷和安全设置。值为 "Never",并且 Pod 的 Init 容器失败, 则 Kubernetes 会将整个 Pod 状态设置为失败。同时 Init 容器不支持。原创 2023-08-07 22:26:53 · 13075 阅读 · 0 评论 -
【云原生】kubernetes中容器的资源限制
一个请求 0.5 CPU 的容器保证会获得请求 1 个 CPU 的容器的 CPU 的一半。如果你为容器指定了 CPU 限制值但未为其设置 CPU 请求,Kubernetes 会自动为其 设置与 CPU 限制相同的 CPU 请求值。类似的,如果容器设置了内存限制值但未设置 内存请求值,Kubernetes 也会为其设置与内存限制值相同的内存请求。通过配置你的集群中运行的容器的 CPU 请求和限制,你可以有效利用集群上可用的 CPU 资源。我们保障容器拥有它请求数量的内存,但不允许使用超过限制数量的内存。原创 2023-08-07 22:23:34 · 13085 阅读 · 0 评论 -
【云原生】Docker-compose中所有模块学习
模板文件是使用Compose的核心,涉及到的指令关键字也比较多。但大家不用担心,这里面大部分指令跟docker run相关参数的含义都是类似的。默认的模板文件名称为,格式为 YAML 格式。services:webapp:ports:\- "80:80"volumes:\- "/data"注意每个服务都必须通过image指令指定镜像或build指令(需要 Dockerfile)等来自动构建生成镜像。如果使用build指令,在DockerfileCMDEXPOSEVOLUMEENV。原创 2023-08-06 11:57:49 · 5474 阅读 · 1 评论 -
【云原生】Docker-Compose全方面学习
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。Compose 使用的三个步骤:使用 Dockerfile 定义应用程序的环境。使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。最后,执行 docker-compose up 命令来启动并运行整个应用程序。Compose。原创 2023-08-06 11:55:04 · 5927 阅读 · 0 评论 -
【云原生】Docker中容器管理常用所有命令
Docker 容器存在的意义就是为了运行容器中的应用,对外提供服务,所以启动容器的目的就是启动运行该容器中的应用。import可以为导入的镜像指定从与,load加载的镜像不能指定与,与原镜像的相同。import恢复的镜像就是新构建的镜像,与原镜像的imageID不同,load恢复的镜像与原镜像是同一个镜像,即imageID相同。import恢复为的镜像已包含当前镜像一层,load恢复的镜像与原镜像的分层是完全相同的。原创 2023-08-04 12:29:37 · 4544 阅读 · 1 评论 -
【云原生】详细学习Docker-Swarm部署搭建和基本使用
Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机,使得容器可以组成跨主机的子网网络。Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。集群的管理和编排是使用嵌入到 docker 引擎的 SwarmKit,可以在 docker 初始化时启动 swarm 模式或者加入已存在的 swarm。原创 2023-08-04 10:54:49 · 6680 阅读 · 3 评论 -
【云原生】一文学会Docker存储所有特性
docker四种方式:默认、volumes数据卷、bind mounts挂载、tmpfs mount(仅在linux环境中提供),其中volumes、bind mounts两种实现持久化容器数据;默认:数据保存在运行的容器中,容器删除后,数据也随之删除volumes:数据卷,数据存放在主机文件系统/var/lib/docker/volumes/目录下,该目录由docker管理,其他进行不允许修改,推荐该种方式持久化数据。原创 2023-07-30 16:54:34 · 2009 阅读 · 0 评论 -
【云原生】Docker容器命令监控+Prometheus监控平台
weave scope 的最大的特点就是会自动生成一张docker容器地图,让我们能够直观的理解,监控和控制器。MEM USAGE/limit:容器使用的总内存,以及它允许使用的总内存。block I/O:容器从主机上的块设备写入和读取的数据量。注意:填写你需要监控的cadvisor的IP地址和端口号。a 显示现行终端机下的所有进程,包括其他用户的进程。net I/O:容器通过其网络接口接收和发送的数据量。pids:容器已经创建的进程或线程的数量。container id:容器的ID。原创 2023-07-28 12:02:45 · 2691 阅读 · 5 评论 -
【云原生】Docker容器资源限制(CPU/内存/磁盘)
⽬录中包含所有与 cpu 相关的 cgroup 配置,⽂件 cpu.shares 保存的就是 --cpu-shares 的配置,值为 512。同样的,/sys/fs/cgroup/memory/docker 和 /sys/fs/cgroup/blkio/docker 中保存的是内存以及 Block IO 的 cgroup 配置。在每个容器中,我们都可以看到⽂件系统,⽹卡等资源,这些资源看上去是容器⾃⼰的。--blkio-weight 与 --cpu-shares 类似,设置的是相对权重值,默认为 500。原创 2023-07-27 19:20:44 · 6599 阅读 · 0 评论 -
【云原生】Docker私有仓库registry
这里注意,既然是私有仓库,肯定是要考虑多台DockerHost共用的情况, 如果有其他的DockerHost想要使用私有仓库,仅需要修改docker的配置文件,指定私有仓库的IP和端口即可。因为我们使用的私有镜像,在上传或下载的时候,都需要我们将镜像的名称直接重命名,要注明它私有仓库的IP地址:暴露端口。注意,这里我们使用的是registry:2版本,还有一个registry镜像,这两个没有什么大的区别。注:registry是官方打包好的服务,端口为5000,就像其他虚拟出来的web服务一样。原创 2023-07-26 20:50:32 · 1651 阅读 · 0 评论 -
【云原生】Docker网络Overlay搭建Consul实现跨主机通信
每个Docker主机上的容器都可以加入Overlay网络,并且它们可以像在同一台主机上一样进行通信,而不需要了解底层主机的网络配置。当容器发送网络请求时,Overlay网络驱动程序将请求封装为VXLAN包,并通过底层主机的物理网络发送到目标容器所在的主机。在Docker中,Overlay网络是一种容器网络驱动程序,它允许在多个Docker主机上创建一个虚拟网络,使得容器可以通过这个网络相互通信。跨主机通信:容器可以在不同的Docker主机上运行,并通过Overlay网络进行通信。2.启动consul容器。原创 2023-07-14 17:02:37 · 1301 阅读 · 4 评论 -
【云原生】Docker跨主机网络Overlay与Macvlan的区别
跨主机网络通信解决方案docker原生的overlay和macvlan第三方的flannel,weave,calico。原创 2023-07-13 11:48:31 · 945 阅读 · 2 评论 -
一文秒会Docker网络(bridge,host,none)
除了none,host,bridge这三个自动创建的网络,用户也可以根据业务需要创建user-defined网络。原创 2023-07-11 23:21:24 · 30427 阅读 · 5 评论 -
【云原生】 一文了解Docker到底是什么?
但是,虚拟机虽然可以提供完全隔离的环境,但是虚拟机的开销是很大的;但是,只要经过一定的配置,我们在使用docker去启动这些镜像的时候,不需要考虑【Tomcat和Nginx,各自的命令】,只要执行docker相关的命令,就可以保证镜像能正常启动,能启动成一个容器,里面的软件能正常运行;有了laaS,企业在开发APP时,只需在公有云平台上注册一个账号,花点钱,配置各种云服务器,各种大小的存储,各种带宽的网络,都配齐,不用操心诸如机房选址、设备采购、实体服务器、存储、网络等问题,只要一个账号,便解决了。原创 2023-07-08 14:27:59 · 1532 阅读 · 12 评论 -
一文晓得SaaS、IaaS和 PaaS 是什么,三者的区别是?
接下来我们直接直奔主题首先,概念走起。:基础设施服务,:平台服务,Platform-as-a-service:软件服务,Software-as-a-service。原创 2023-07-06 10:54:11 · 2388 阅读 · 8 评论 -
使用Dockerfile编写源码安装Nginx镜像
基准镜像#作者信息#调整系统时间差#工作目录#定义环境变量#安装epel仓库#安装wget#下载nginx文件并解压#安装编译依赖包#清理仓库#创建nginx用户#切换工作目录#编译安装nginx#复制测试页面到容器中#设置容器中要挂在到宿主机的目录#设置sbin环境变量#暴露80端口"]#当ENTRYPOINT和CMD连用时,CMD的命令是ENTRYPOINT命令的参数,两者连用相当于nginx -g "daemon off;原创 2023-06-29 10:52:16 · 5066 阅读 · 11 评论 -
【云原生】一文学会Dockerfile所有常用命令
Docker file的作用方便管理员来根据需求来进行构建镜像,前面学习过commit来将一个容器打包成镜像,但是Docker 并不建议用户通过commit方式构建镜像。原因如下:1. 这是一种手工创建镜像的方式,容易出错,效率低且可重复性弱。比如要在 debian base 镜像中也加入 vi,还得重复前面的所有步骤。2. 更重要的:使用者并不知道镜像是如何创建出来的,里面是否有恶意程序。也就是说无法对镜像进行审 计,存在安全隐患。原创 2023-06-27 22:23:53 · 657 阅读 · 9 评论 -
【云原生】一文秒会Docker容器企业化管理
docker删除容器,管理docker容器,将当前容器创建为镜像,将容器导出,导入原创 2023-06-23 23:20:22 · 29412 阅读 · 6 评论 -
【云原生】一看就会的Docker镜像管理
docker images 是docker的三大组件之一。docker把下载的 images 存储到docker主机上,如果一个 image 不 在主机上,docker会从一个镜像仓库下载,默认的仓库是 DOCKER HUB 公共仓库。接下来将介绍更多关于 docker images 的内容,包括: • 使用和管理本地主机上的 images • 创建一个基础的 images • 上传 images 到 docker hub (公共images仓库) • 列出本地主机上已经存在的 images。原创 2023-06-22 23:09:23 · 596 阅读 · 11 评论 -
【云原生】Docker部署/容器加速器(最新版)
官网:https://www.docker.com/docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现,这里程序运行的依赖也就是容器就好比集装箱,容器所处的操作系统环境就好比货船或港口,程序的表现只和集装箱有关系(容器),和集装箱放在哪个货船或者哪个港口(操作系统)没有关系。原创 2023-06-21 17:35:23 · 2042 阅读 · 6 评论 -
Docker的常用基础命令(详细讲解)
在 run 后面加上 -d 参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登 录容器,如果只加 -i -t 两个参数,创建容器后就会自动进容器里);一开始给大家讲解的挂载方式就属于指定目录挂载,这种方式的挂载不会在 /var/lib/docker/volume 目录生成内容。匿名挂载只需要写容器目录即可,容器外对应的目录会在 /var/lib/docker/volumes 中生成。docker run -di -v /宿主机目录:/容器目录 -v /宿主机目录2:/容器目录2 镜像名。原创 2022-11-29 21:01:18 · 1952 阅读 · 1 评论 -
在CentOS上安装Docker引擎
什么是Dockerdocker官方文档:https://docs.docker.com/engine/install/centos/系统要求: 要安装 Docker 引擎,你需要一个维护版本的 CentOS 7、CentOS 8、 或 CentOS 9。不支持或测试存档版本。旧版本的Docker被称为or。如果这些是 已安装,卸载它们以及关联的依赖项。如果没有安装这些包没用关系docker的存储源:四, 安装Docker引擎1.安装最新版的Docker Engine,conta原创 2022-11-25 11:19:56 · 1181 阅读 · 0 评论