容器
文章平均质量分 69
主要分享容器类的技术,比如Docker,Podman,Containerd,Kubernetes(K8S)等技术
畅云客
搞云计算的,就喜欢瞎捣鼓,瞎研究。
展开
-
让你的docker镜像变小的方法
今天给大家推荐一个项目,这个项目可以帮助我们压缩镜像,让我们的镜像瘦下来(size变小)。,这是我基于centos:7.6.1810制作的一个nginx镜像,可以看到是553MB。原创 2024-07-05 17:38:59 · 601 阅读 · 0 评论 -
Docker使用daocloud镜像加速
之前给大家分享的阿里云的镜像加速,今天再给大家分享一个还可以使用的镜像加速地址daocloud。经过测试速度还是比较快的。原创 2024-06-25 09:13:30 · 2895 阅读 · 0 评论 -
把本机的bash构建到docker镜像里面
最近突发奇想,想把本机的bash放到docker镜像里面,接下来看操作。原创 2024-06-15 12:31:30 · 734 阅读 · 0 评论 -
制作一个超小的docker镜像
在制作docker镜像我们都希望能够制作一个超小的镜像,那么该怎么做呢,网上有很多优化镜像大小的方法,今天就不在重复了,今天给大家分享一个从源头控制大小的方案。Docker Scratch镜像是一个特殊的Docker镜像,它不基于任何其他镜像构建。相反,它是一个空白的镜像,只包含了Docker运行所需的最小文件系统和执行环境。这使得它非常适合用于构建轻量级容器化应用程序,因为它不包含任何额外的组件或库。这个镜像不需要下载,在dockerfile中直接FROM引用即可。原创 2024-06-15 11:17:35 · 504 阅读 · 0 评论 -
从零制作一个ubuntu的docker镜像
上次分享了一下怎么制作centos的镜像,今天给大家分享一下ubuntu的制作方法。原创 2024-06-12 13:12:53 · 517 阅读 · 0 评论 -
从零制作一个docker的镜像
近期docker的镜像仓库不好用了,很多国内的源也无法使用了,所有今天给大家分享一下怎么从零制作一个CentOS镜像。原创 2024-06-12 12:15:26 · 746 阅读 · 0 评论 -
Docker配置代理
有时候我们在使用docker下载镜像的时候可能想要配置代理区下载那么本文就给大家分享一下docker怎么配置代理。假设你已经有了代理,那就编辑/usr/lib/systemd/system/docker.service。在[Service]下添加。原创 2024-06-11 12:36:29 · 1397 阅读 · 0 评论 -
Docker镜像加速
今天给大家分享一下Docker下载镜像速度慢或者无法下载怎么办,我们其实可以配置镜像加速,这里给大家分享的是阿里云的镜像加速。原创 2024-06-10 13:49:06 · 733 阅读 · 2 评论 -
Docker装不上怎么办
最近Docker的消息相信大家都已经知道了,你在安装Docker的时候如果还用官网的源安装的话基本上都会因为网络问题安装不上,那么Docker就不能使用了吗,当然不是,我们可以通过阿里云的地址去安装,废话不多说,直接上操作。原创 2024-06-10 11:52:29 · 1701 阅读 · 5 评论 -
Kubernetes之动态PVC
每个StorageClass都包含字段provisioner,parameters和reclaimPolicy具体来说,StorageClass会定义以下两部分1、PV的属性 ,比如存储的大小、类型等;2、创建这种PV需要使用到的存储插件,比如Ceph、NFS等有了这两部分信息,Kubernetes就能够根据用户提交的PVC,找到对应的StorageClass,然后Kubernetes就会调用 StorageClass声明的存储插件,创建出需要的PV。原创 2024-05-14 09:07:59 · 622 阅读 · 1 评论 -
Kubernetes持久化存储
目录为什么要做持久化存储都有哪些持久化存储emptyDir什么是emptyDiremptyDir作用emptyDir的应用场景emptyDir优缺点emptyDir的使用方式hostPath什么是hostPathhostPath应用场景hostPath优缺点hostPath的使用方式PV以及PVC什么是PV什么是PVCPV的供应方式绑定使用流程回收策略访问模式示例资源列表部署NFSPV、PVC应用示例 在k8s中部署的应用都是以pod容器的形式运行的,假如我们部署MySQL、Redis等数据库原创 2024-05-14 08:58:16 · 1251 阅读 · 0 评论 -
Kubernetes之更新CA证书
Kubernetes集群的ca证书默认是10年,其他证书的有效期是1年,当证书过期以后集群无法正常执行命令,所以需要更新证书。Kubernetes官方提供的更新方案是更新组件的证书不能更新CA证书,那CA证书该怎么调整呢,我查阅资料后了解到可以在部署Kubernetes集群的时候修改源代码把CA证书的时间调整长一些,但是这个是新集群,已经存在的集群怎么在线更新呢,据了解好像还有方法但是需要解散集群,然后在我的测试下找到一种不影响集群就能在线更新CA证书的方法,接下来我就把这个方法分享给大家,请大家批评指正。原创 2024-05-13 12:16:55 · 473 阅读 · 1 评论 -
Kubernetes之更新证书
Kubernetes集群的ca证书默认是10年,其他证书的有效期是1年,当证书过期以后集群无法正常执行命令,所以需要更新证书。证书更新分为自动更新和手动更新,当集群升级的时候,证书会自动更新。这里我们主要说的是手动更新。原创 2024-05-13 12:07:11 · 333 阅读 · 0 评论 -
Kubernetes之版本升级
当我们要用到新版本的一些功能和特性的时候或者当前版本太旧无法满足需要的时候我们势必要对Kubernetes集群进行升级。原创 2024-05-13 12:02:14 · 419 阅读 · 0 评论 -
Kubernetes之HPA
在前面的课程里面我们学习了怎么调整Kubernetes集群中Pod的数量,但是指不定什么时候业务请求量就很大了,所以如果不能做到自动化的去扩缩容的话,这也是一个很麻烦的事情。幸运的是Kubernetes为我们提供了这样一个资源对象:Horizontal Pod Autoscaling(Pod水平自动伸缩),简称HPA。HAP通过监控分析RC或者Deployment控制的所有Pod的负载变化情况来确定是否需要调整Pod的副本数量,这是HPA最基本的原理。原创 2024-05-10 14:20:33 · 1030 阅读 · 0 评论 -
Kubernetes之Ingress
Ingress官网定义:Ingress可以把进入到集群内部的请求转发到集群中的一些服务上,从而可以把服务映射到集群外部。Ingress 能把集群内Service 配置成外网能够访问的 URL,流量负载均衡,提供基于域名访问的虚拟主机等。Ingress简单的理解就是你原来需要改Nginx配置,然后配置各种域名对应哪个 Service,现在把这个动作抽象出来,变成一个 Ingress 对象,你可以用 yaml 创建,每次不要去改Nginx 了,直接改yaml然后创建/更新就行了;原创 2024-05-09 11:38:42 · 1135 阅读 · 0 评论 -
Kubernetes之Service
本文概述了Kubernetes(K8S)中的Service资源,它是实现服务发现和负载均衡的关键组件。Service为Pod提供稳定的网络访问接口,支持多种类型(如ClusterIP、NodePort、LoadBalancer),并可通过Endpoints实现Pod的发现和流量分发。内置的负载均衡器确保请求被均衡地转发到多个Pod上,提高应用的可用性和扩展性。本文为理解和使用K8S Service提供了有价值的参考。原创 2024-05-09 11:20:05 · 1006 阅读 · 0 评论 -
Kubernetes之Secret
ConfigMap这个资源对象是Kubernetes当中非常重要的一个对象,一般情况下ConfigMap是用来存储一些非安全的配置信息,如果涉及到一些安全相关的数据的话用ConfigMap就非常不妥了,因为ConfigMap是名为存储的,我们说这个时候我们就需要用到另外一个资源对象了:Secret,Secret用来保存敏感信息,例如密码、OAuth 令牌和 ssh key等等,将这些信息放在Secret中比放在Pod的定义中或者docker镜像中来说更加安全和灵活。原创 2024-05-08 13:30:55 · 449 阅读 · 0 评论 -
Kubernetes之ConfigMap
Configmap 是 k8s 中的资源对象,用于保存非机密性的配置的,数据可以用 key/value键值对的形式保存,也可通过文件的形式保存。原创 2024-05-08 13:19:30 · 1116 阅读 · 0 评论 -
Pod控制器
本文深入探讨了Kubernetes(K8s)中的Pod控制器,介绍了它们在自动化容器化应用部署、扩展和管理中的关键作用。Pod控制器如Deployment、StatefulSet、DaemonSet等,不仅确保了Pod的可靠运行,还提供了强大的伸缩性和容错能力。原创 2024-05-07 11:59:55 · 856 阅读 · 0 评论 -
Pod初始化容器
Init容器就是做初始化工作的容器。可以有一个或多个,如果多个按照定义的顺序依次执行,只有所有的初始化容器执行完后,主容器才启动。由于一个Pod里的存储卷是共享的,所以Init Container里产生的数据可以被主容器使用到,Init Container可以在多种K8S资源里被使用到,如Deployment、DaemonSet, StatefulSet、Job等,但都是在Pod启动时,在主容器启动前执行,做初始化工作。Init 容器不支持 Readiness,因为它们必须在Pod就绪之前运行完成。原创 2024-05-07 11:34:53 · 130 阅读 · 0 评论 -
Pod健康检查
在Kubernetes集群当中,我们可以通过配置liveness probe(存活探针)和readiness probe(可读性探针)来影响容器的生存周期。目前LivenessProbe和ReadinessProbe两种探针都支持下面三种探测方法:在容器中执行指定的命令,如果执行成功,退出码为 0 则探测成功:通过容器的 IP 地址和端口号执行 TCP 检 查,如果能够建立 TCP 连接,则表明容器健康。原创 2024-05-07 11:33:04 · 665 阅读 · 0 评论 -
Pod Hook
实际上 Kubernetes 为我们的容器提供了生命周期钩子的,就是我们说的Pod Hook,Pod Hook 是由 kubelet 发起的,当容器中的进程启动前或者容器中的进程终止之前运行,这是包含在容器的生命周期之中。它是阻塞的,意味着它是同步的, 所以它必须在删除容器的调用发出之前完成。我们知道Pod是Kubernetes集群中的最小单元,而 Pod 是有容器组组成的,所以在讨论 Pod 的生命周期的时候我们可以先来讨论下容器的生命周期。- 对容器上的特定的端点执行HTTP请求。原创 2024-05-06 17:15:21 · 136 阅读 · 0 评论 -
静态Pod
静态 pod 始终绑定在某一个kubelet,并且始终运行在同一个节点上。kubelet会自动为每一个静态 pod 在 Kubernetes 的 apiserver 上创建一个镜像 Pod(Mirror Pod),因此我们可以在 apiserver 中查询到该 pod,但是不能通过 apiserver 进行控制(例如不能删除)。在Kubernetes集群中除了我们经常使用到的普通的 Pod 外,还有一种特殊的 Pod,叫做Static Pod,就是我们说的静态 Pod,静态 Pod 有什么特殊的地方呢?原创 2024-05-06 17:01:00 · 216 阅读 · 0 评论 -
深入理解Pod
Pod是Kubernetes中的最小调度单元,k8s是通过定义一个Pod的资源,然后在Pod里面运行容器,容器需要指定一个镜像,这样就可以用来运行具体的服务。一个Pod封装一个容器(也可以封装多个容器),Pod里的容器共享存储、网络等。也就是说,应该把整个pod看作虚拟机,然后每个容器相当于运行在虚拟机的进程。Pod是需要调度到k8s集群的工作节点来运行的,具体调度到哪个节点,是根据scheduler调度器实现的。Pod中可以同时运行多个容器。同一个Pod中的容器会自动的分配到同一个 node 上。原创 2024-05-06 12:53:30 · 1222 阅读 · 0 评论 -
基于Containerd部署Kubernetes集群
基于Containerd部署Kubernetes集群,我们知道 Kubernetes 提供了一个 CRI 的容器运行时接口,那么这个 CRI 到底是什么呢?这个其实也和 Docker 的发展密切相关的。原创 2024-05-06 08:06:53 · 1068 阅读 · 0 评论 -
Kubernetes群集基于Docker部署
本文是记录基于docker部署Kubernetes(K8S)1.23版本的流程,如果有不清楚的地方可以评论区讨论,如果有需要的资源也可以评论区说,都可以免费提供,毕竟都是技术探讨。原创 2024-04-30 16:20:39 · 394 阅读 · 0 评论 -
Kubernetes
Kubernetes 是 Google 团队发起的一个开源项目,它的目标是管理跨多个主机的容器,用于自动部署、扩展和管理容器化的应用程序,主要实现语言为 Go 语言。在Kubernetes中,容器是一种轻量级、可移植的封装形式,包括应用程序和其所有依赖。Kubernetes提供了一种机制,可以轻松地部署、扩展和管理这些容器,从而实现了高度可伸缩、弹性和自动化的应用程序生命周期管理。原创 2024-04-30 16:06:09 · 692 阅读 · 0 评论 -
Containerd初体验
Containerd(Container Daemon)是一个开源的容器运行时,它提供了一种标准化的方式来管理容器的生命周期。该项目最初是由Docker开发团队创建的,并在后来成为一个独立的项目,被纳入了Cloud Native Computing Foundation(CNCF)的孵化项目中。Containerd 管理容器的生命周期,包括容器的创建、运行、暂停、恢复、停止和销毁等操作。原创 2024-04-30 12:44:01 · 888 阅读 · 1 评论 -
Spug运维平台
对于中小型企业而言,进行主机和应用的管理是比较麻烦的,应用部署往往需要直接连接服务器,再进行手动的环境配置、代码拉取、应用构建和部署发布等工作,容易出错,且耗时费力。一个好的自动化运维平台,往往能大大节省人力物力,提高开发部署效率。Spug,正是一个面向中小型企业设计的轻量级自动化运维平台。原创 2024-04-30 12:15:13 · 914 阅读 · 1 评论 -
Docker日志管理
日志采集的工具有很多种,如 Fluentd、Flume、Logstash、Betas 等等。引入 Filebeat 作 为日志搜集器,主要是为了解决 Logstash 开销大的问题。启动一个 Logstash 就需要消耗 500M 左右的内存,而 Filebeat 只需要 10 来 M 内存资源。常用的 ELK 日志采集方案中,大部 分的做法就是将所有节点的日志内容通过 Filebeat 送到 Kafka 消息队列, 再使用 Logstash 集 群读取消息队列内容, 根据配置文件进行过滤。原创 2024-04-30 12:04:54 · 867 阅读 · 4 评论 -
Harbor私有仓库
Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。它以 Docker 公司开源的 Registry 为基础,提供了管理 UI、基于角色的访问控制(Role Based AccessControl)、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能。通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。原创 2024-04-29 17:08:01 · 874 阅读 · 0 评论 -
Docker网络模式
当项目大规模使用 Docker 时,容器通信的问题也就产生了。要解决容器通信问题,必须先了解很多关于网络的知识。Docker一共有四种网络模式分别是host模式,container模式,none模式,bridge模式。网络模式参数说明host模式--net=host容器和宿主机共享 Network namespacecontainer模式--net={id}容器和另外一个容器共享 Network namespace。原创 2024-04-29 16:46:28 · 782 阅读 · 0 评论 -
Docker Compose
Docker Compose 的前身是 Fig,它是一个定义及运行多个 Docker 容器的工具。使用 Docker Compose 时,只需要在一个配置文件中定义多个 Docker 容器,然后使用一条命令启动这些容器。Docker Compose 会通过解析容器间的依赖关系按先后顺序启动所定义的容器。原创 2024-04-29 16:23:18 · 426 阅读 · 0 评论 -
Docker图形化管理
说到Docker GUI管理界面,可以说业内最出名的便是Portainer了,其次Kitematic以及没有中文界面,甚至没有图形UI的LazyDocker。而今天介绍的这款是国内大佬开发的UI,兼备了良好的UI界面的同时,也同时具备Docker主机管理、集群管理以及docker的任务编排。原创 2024-04-29 13:06:38 · 193 阅读 · 1 评论 -
Docker的镜像制作
docker制作镜像的方法,dockerfile制作镜像,多阶段构建镜像原创 2024-04-29 12:11:10 · 1985 阅读 · 14 评论 -
初识Docker
Docker容器的前世今生,从发展历史到理论介绍再到安装与使用原创 2024-04-29 11:32:33 · 1225 阅读 · 13 评论