Helm 使用

Helm 核心概念 在深入了解 Helm 命令之前,我们先来熟悉几个关键概念: Chart: Helm 的包格式,可以理解为 K8s 应用的安装包。一个 Chart 包含了一组 Kubernetes YAML 文件模板、默认配置(values)以及 Chart 的元数据。 Release: Chart 在 Kubernetes 集群中的一个部署实例。每次通过 Helm 安装或升级 Chart 都会创建一个新的 Release。 Repository (仓库): Helm Chart 的存储仓库,类似于 Docker Hub。官方仓库有 https://charts.helm.sh/stable,你也可以自定义仓库。 Values: Chart 的配置参数,以 values.yaml 文件形式存在。你可以通过修改 values 文件来定制 Chart 的部署行为。 Revision: Release 的版本号。每次 Release 升级时都会创建一个新的 Revision,用于回滚。 Helm 安装与基本配置 Helm 客户端安装: 根据你的操作系统,从 Helm 官方网站下载并安装 Helm 客户端。 ...

2025-01-14 · 3 min · 1397 words · Superb

Etcd Recovery

大致步骤 生成etcd证书 cert-file和key-file用于etcd服务器与客户端之间的通信,而peer-cert-file和peer-key-file用于集群内部etcd节点间的相互通信。 ...

2024-03-29 · 3 min · 1113 words · Superb

Kubernetes应用最佳实践

一 应用部署 1.1 健康检查 readiness probe确定容器何时可以接收流量。 Kubelet执行检查并确定应用程序是否可以接收流量。 liveness probe确定何时应重新启动容器。 ...

2024-03-19 · 21 min · 10030 words · Superb

Kubeconfig

为了授权一个名为dev的用户查询特定Kubernetes命名空间,并签发相应的Kubernetes证书,生成kubeconfig文件,以及使用这个kubeconfig来进行操作,你可以按照以下步骤进行: ...

2024-01-30 · 4 min · 1800 words · Superb

Runtime Logs

当您使用 kubectl logs <pod> -c <container> 命令时,您正在查看的日志实际上并不是直接存储在宿主机的某个固定位置,而是由 Kubernetes 中的容器运行时动态提供的。容器运行时(如 Docker、containerd 或 CRI-O)负责管理容器的日志,并且当您执行 kubectl logs 命令时,kubelet 会与容器运行时通信以检索日志数据。 ...

2024-01-18 · 2 min · 889 words · Superb

k8s集群证书更新

关于kubernetes-admin用户 在 Kubernetes 中,kubernetes-admin 是一个特殊的用户,它在集群初始化时被创建,并被授予了集群管理员的权限。当 API server 启动时,它会使用 --authorization-mode=Node,RBAC 参数来启动 RBAC 授权模式,并且它会自动创建一个名为 system:masters 的用户组,并将 kubernetes-admin 用户添加到这个组中。 ...

2023-09-18 · 2 min · 846 words · Superb

K8S的资源限制

在 Kubernetes 中,当你为 Pod 设置了资源限制(包括 CPU 和内存)时,这些限制将被 Docker 容器引擎(或其他容器运行时)应用到运行的容器上。然而,docker stats 命令显示的 CPU 和内存使用百分比的计算方式是不同的。 ...

2023-09-15 · 1 min · 335 words · Superb

容器中的privileged

rootless container rootless container中的”rootless”不仅仅指容器中以非root用户来运行进程,还指以非root用户来创建容器,管理容器。也就是说,启动容器的时候,是以非root用户来执行的。 ...

2023-08-21 · 2 min · 979 words · Superb

K8S的limits

对于 CPU,如果 pod 中服务使用 CPU 超过设置的limits,pod 不会被 kill 掉但会被限制 chatgpt回答 在 Kubernetes 中,当容器中的服务使用的 CPU 超过设置的 limits 时,Pod 不会被直接杀掉,而是会被限制(throttling)。 Kubernetes 使用 CPU throttling(CPU 限制)机制来处理超出限制的 CPU 使用情况。当容器使用的 CPU 超过其设置的 limits 时,Kubernetes 会限制容器的 CPU 使用,以确保其他容器和系统的正常运行。这种限制是通过在容器中引入 CPU throttling 周期来实现的。 CPU throttling 会将容器的 CPU 使用限制在设置的 limits 范围内。当容器使用的 CPU 超过 limits 时,Kubernetes 会限制容器的 CPU 时间片,使其在一段时间内只能使用一部分 CPU 资源。这样可以防止容器过度占用 CPU 资源,影响其他容器和系统的性能。 通过 CPU throttling,Kubernetes 在超出 CPU limits 的情况下仍然保持了容器的运行,但限制了其 CPU 使用,以避免对整个集群造成不利影响。这种机制可以帮助确保集群中的各个容器能够公平共享 CPU 资源,并提供一定程度的容错能力。 需要注意的是,虽然 CPU throttling 可以帮助限制容器的 CPU 使用,但过度的 CPU 使用可能会导致应用程序性能下降。因此,在设计和部署应用程序时,建议合理设置 CPU limits,以确保应用程序能够在适当的 CPU 资源范围内运行,并避免过度占用 CPU 资源。 网上回答 所有的资源类型,可以被划分为两大类:可压缩和不可压缩的。 ...

2023-07-27 · 3 min · 1109 words · Superb

docker entrypoint&cmd

ENTRYPOINT的exec和shell形式: ENTRYPOINT ["executable", "param1", "param2"] ENTRYPOINT command param1 param2 CMD指令有三种形式: CMD ["executable","param1","param2"](exec形式,这是首选形式) CMD ["param1","param2"](作为ENTRYPOINT 的默认参数) CMD command param1 param2(shell形式) CMD 与 ENTRYPOINT都是用于指定启动容器执行的命令,区别在于: ...

2023-02-09 · 1 min · 473 words · Superb