k8s 中基于容器构建 docker image

本文介绍了如何使用kaniko在容器或Kubernetes集群内从Dockerfile构建容器镜像,解决了Docker-in-Docker方法的安全性和性能问题。要与极狐GitLab配合使用kaniko,需要特定类型的runner支持。文中详细说明了如何设置kaniko以构建并推送镜像到GitLab Container Registry,包括处理代理、构建多架构镜像以及使用自定义证书的镜像库时所需的操作步骤。此外,还提供了针对403错误等常见问题的故障排查建议。通过遵循这些指导,用户可以更高效安全地进行Docker镜像构建。

liujie Published on 2024-06-07

k8s Pod 优先级和抢占

Kubernetes中的Pod优先级和抢占机制用于优化集群资源分配,确保关键应用在资源紧张时仍能运行。Pod优先级通过优先级类(PriorityClass)定义,其值越高,Pod的重要性越大,在调度时更可能被优先考虑。创建优先级类后,可以在Pod的spec中指定使用该类。当高优先级Pod无法被调度时,Kubernetes将启动抢占流程,选择并驱逐低优先级Pod以腾出资源。此外,通过设置PodDisruptionBudget (PDB) 或调整调度器配置来控制或禁用抢占行为,从而更好地保护关键应用。示例展示了如何创建优先级类及将其应用于Pod,帮助实现智能资源管理。

liujie Published on 2024-05-20

k8s 中 pvc的 accessMode : ReadWriteOnce ReadWriteMany ReadOnlyMany 区别

k8s 中 pvc的 accessMode : ReadWriteOnce ReadWriteMany ReadOnlyMany 区别是什么 在Kubernetes中,PVC(PersistentVolumeClaim)的accessMode属性用于指定对持久化卷(PV)的访问模式。accessMo

liujie Published on 2024-03-20

k8s中hostname, hosts文件, DNS和代理问题, service和pod的访问

k8s中hostname, hosts文件, DNS和代理问题, service和pod的访问问题 在kubernets中不同命名空间的服务相互访问 涉及到的是Pod和Service之间的相互访问,主要格式如下: 访问Pod:(注意下面不是直接pod的ip,而是由pod的ip组成的字符串)

liujie Published on 2023-09-11

Docker ARG 变量不起作用(始终为空)

文章讨论了在Dockerfile中使用`ARG`变量时遇到的问题,即变量值总是为空。通过提供的Docker命令、Dockerfile内容以及构建输出示例,展示了当尝试设置并使用名为`APP_NAME`的`ARG`变量时,该变量在运行阶段被发现是空的情况。问题的根本原因在于`ARG`指令的作用范围限制:它只对紧跟其后的行有效直到下一个`FROM`指令前。为了解决这个问题,建议将`ARG`声明移动到对应的`FROM`指令之后,确保其作用域覆盖需要使用的部分。此外,还引用了一个Stack Overflow上的相关讨论作为参考。

liujie Published on 2023-08-26

Deployment和Statefulset区别

本文介绍了Kubernetes中Deployment和StatefulSet的区别及应用场景。**Deployment**适用于无状态应用,其特点包括Pod间无顺序、共享存储、名字包含随机数字以及通过ClusterIP实现负载均衡。而**StatefulSet**则用于有状态应用,如数据库或缓存服务,其特性涵盖按序部署与扩展、每个Pod拥有独立存储(通过volumeClaimTemplates实现)、固定且唯一的Pod名称,以及基于Headless Service的DNS域名解析。此外,文章还解释了有状态应用的概念及其重要性,并列举了几种常见的有状态应用类型,强调了使用StatefulSet管理这些应用的好处,比如提供稳定的网络标识、支持有序操作及持久化存储等。

liujie Published on 2023-08-22

k8s 持久卷详解

K8S 持久卷详解 见文章:https://blog.csdn.net/wq1205750492/article/d

liujie Published on 2023-08-22