07 2021 档案
摘要:参考:https://kubernetes.io/zh/docs/concepts/cluster-administration/kubelet-garbage-collection/ 垃圾回收是 kubelet 的一个有用功能,它将清理未使用的镜像和容器。 Kubelet 将每分钟对容器执行一次垃
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/cluster-administration/logging/ 应用日志可以让你了解应用内部的运行状况。日志对调试问题和监控集群活动非常有用。 大部分现代化应用都有某种日志记录机制。同样地,容器引擎也被设计成支持日志
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/cluster-administration/system-metrics/ 通过系统组件指标可以更好地了解系统组个内部发生的情况。系统组件指标对于构建仪表板和告警特别有用。 Kubernetes 组件以 Prome
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/cluster-administration/networking/ 集群网络系统是 Kubernetes 的核心部分,但是想要准确了解它的工作原理可是个不小的挑战。 下面列出的是网络系统的的四个主要问题: 1.高度
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/cluster-administration/manage-deployment/ 组织资源配置 许多应用需要创建多个资源,例如 Deployment 和 Service。 可以通过将多个资源组合在同一个文件中(在
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/scheduling-eviction/scheduler-perf-tuning/ FEATURE STATE: Kubernetes 1.14 [beta] 作为 kubernetes 集群的默认调度器, kub
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/scheduling-eviction/node-pressure-eviction/ 节点压力驱逐是 kubelet 主动终止 Pod 以回收节点上资源的过程。 kubelet 监控集群节点的 CPU、内存、磁盘空
阅读全文
摘要:参考: https://kubernetes.io/zh/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/ https://kubernetes.io/zh/docs/concepts/schedulin
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/scheduling-eviction/taint-and-toleration/ 节点亲和性 是 Pod 的一种属性,它使 Pod 被吸引到一类特定的节点 (这可能出于一种偏好,也可能是硬性要求)。 污点(Tain
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/scheduling-eviction/assign-pod-node/ 你可以约束一个 Pod 只能在特定的 节点 上运行。 有几种方法可以实现这点,推荐的方法都是用 标签选择算符来进行选择。 通常这样的约束不是必
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/scheduling-eviction/kube-scheduler/ 在 Kubernetes 中,调度 是指将 Pod 放置到合适的 Node 上,然后对应 Node 上的 Kubelet 才能够运行这些 pod
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/policy/pid-limiting/ FEATURE STATE: Kubernetes v1.20 [stable] Kubernetes 允许你限制一个 Pod 中可以使用的 进程 ID(PID)数目。你也可
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/policy/resource-quotas/ 当多个用户或团队共享具有固定节点数目的集群时,人们会担心有人使用超过其基于公平原则所分配到的资源量。 资源配额是帮助管理员解决这一问题的工具。 资源配额,通过 Reso
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/policy/limit-range/ 默认情况下, Kubernetes 集群上的容器运行使用的计算资源没有限制。 使用资源配额,集群管理员可以以名字空间为单位,限制其资源的使用与创建。 在命名空间中,一个 Pod
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/security/controlling-access/ 本页面概述了对 Kubernetes API 的访问控制。 用户使用 kubectl、客户端库或构造 REST 请求来访问 Kubernetes API。 人
阅读全文
摘要:本概述定义了一个模型,用于在 Cloud Native 安全性上下文中考虑 Kubernetes 安全性。 警告: 此容器安全模型只提供建议,而不是经过验证的信息安全策略。 云原生安全的 4 个 C 你可以分层去考虑安全性,云原生安全的 4 个 C 分别是云(Cloud)、集群(Cluster)、容
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/security/pod-security-standards/ Pod 的安全性配置一般通过使用 安全性上下文(Security Context) 来保证。安全性上下文允许用户逐个 Pod 地定义特权级及访问控制。
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/configuration/manage-resources-containers/ 下面是个例子 以下 Pod 有两个 Container。每个 Container 的请求为 0.25 cpu 和 64MiB(22
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/configuration/secret/ Secret 对象类型用来保存敏感信息,例如密码、OAuth 令牌和 SSH 密钥。 将这些信息放在 secret 中比放在 Pod 的定义或者 容器镜像 中来说更加安全和
阅读全文
摘要:参考: https://baike.baidu.com/item/IOPS/3105194 https://www.cnblogs.com/zengkefu/p/5634299.html 简介 IOPS(Input/Output Operations Per Second)是一个用于计算机存储设备(
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/configuration/configmap/ ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。使用时, Pods 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。 Confi
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/configuration/overview/ 一般配置提示 定义配置时,请指定最新的稳定 API 版本。 在推送到集群之前,配置文件应存储在版本控制中。 这允许您在必要时快速回滚配置更改。 它还有助于集群重新创建和
阅读全文
摘要:存储容量是有限的,并且会因为运行 Pod 的节点不同而变化: 网络存储可能并非所有节点都能够访问,或者对于某个节点存储是本地的。 FEATURE STATE: Kubernetes v1.19 [alpha] FEATURE STATE: Kubernetes v1.21 [beta] 本页面描述了
阅读全文
摘要:动态卷供应允许按需创建存储卷。 如果没有动态供应,集群管理员必须手动地联系他们的云或存储提供商来创建新的存储卷, 然后在 Kubernetes 集群创建 PersistentVolume 对象来表示这些卷。 动态供应功能消除了集群管理员预先配置存储的需要。 相反,它在用户请求时自动供应存储。 背景
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/storage/storage-classes/ 介绍 StorageClass 为管理员提供了描述存储 "类" 的方法。 不同的类型可能会映射到不同的服务质量等级或备份策略,或是由集群管理员制定的任意策略。 Kub
阅读全文
摘要:介绍 就像 StorageClass 为管理员提供了一种在配置卷时描述存储“类”的方法, VolumeSnapshotClass 提供了一种在配置卷快照时描述存储“类”的方法。 VolumeSnapshotClass 资源 每个 VolumeSnapshotClass 都包含 driver、dele
阅读全文
摘要:介绍 CSI 卷克隆功能增加了通过在 dataSource 字段中指定存在的 PVC, 来表示用户想要克隆的 卷(Volume)。 克隆(Clone),意思是为已有的 Kubernetes 卷创建副本,它可以像任何其它标准卷一样被使用。 唯一的区别就是配置后,后端设备将创建指定完全相同的副本,而不是
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/storage/persistent-volumes/ 回收 当用户不再使用其存储卷时,他们可以从 API 中将 PVC 对象删除,从而允许 该资源被回收再利用。PersistentVolume 对象的回收策略告诉集
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/storage/volume-snapshots/ 在 Kubernetes 中,卷快照是一个存储系统上卷的快照,本文假设你已经熟悉了 Kubernetes 的 持久卷。 介绍 与 PersistentVolume
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/storage/volumes/ Container 中的文件在磁盘上是临时存放的,这给 Container 中运行的较重要的应用 程序带来一些问题。问题之一是当容器崩溃时文件丢失。kubelet 会重新启动容器,
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/services-networking/network-policies/ 如果你希望在 IP 地址或端口层面(OSI 第 3 层或第 4 层)控制网络流量, 则你可以考虑为集群中特定应用使用 Kubernetes
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/services-networking/endpoint-slices/ FEATURE STATE: Kubernetes v1.21 [stable] 端点切片(EndpointSlices) 提供了一种简单的方
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/services-networking/ingress/ FEATURE STATE: Kubernetes v1.19 [stable] Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/services-networking/dns-pod-service/ Kubernetes 为服务和 Pods 创建 DNS 记录。 你可以使用一致的 DNS 名称而非 IP 地址来访问服务。 介绍 Kubern
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/services-networking/service/ Kubernetes 网络解决四方面的问题: 一个 Pod 中的容器之间通过本地回路(loopback)通信。 集群网络在不同 pod 之间提供通信。 Ser
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/workloads/controllers/cron-jobs/ FEATURE STATE: Kubernetes v1.21 [stable] CronJob 创建基于时隔重复调度的 Jobs。 一个 CronJ
阅读全文
摘要:FEATURE STATE: Kubernetes v1.21 [beta] TTL 控制器提供了一种 TTL 机制来限制已完成执行的资源对象的生命周期。 TTL 控制器目前只处理 Job, 可能以后会扩展以处理将完成执行的其他资源,例如 Pod 和自定义资源。 此功能目前是 Beta 版而自动启用
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/workloads/controllers/garbage-collection/ Kubernetes 垃圾收集器的作用是删除某些曾经拥有属主(Owner)但现在不再拥有属主的对象。 属主和附属 某些 Kubern
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/workloads/controllers/job/ Job 会创建一个或者多个 Pods,并将继续重试 Pods 的执行,直到指定数量的 Pods 成功终止。 随着 Pods 成功结束,Job 跟踪记录成功完成的
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/workloads/controllers/daemonset/ DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本。 当有节点加入集群时, 也会为他们新增一个 Pod 。 当有节点从集群移除时,
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/workloads/controllers/statefulset/ StatefulSet 是用来管理有状态应用的工作负载 API 对象。 StatefulSet 用来管理某 Pod 集合的部署和扩缩, 并为这些
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/workloads/controllers/deployment/ 创建 Deployment 下面是 Deployment 示例。其中创建了一个 ReplicaSet,负责启动三个 nginx Pods:contr
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/reference/labels-annotations-taints/ Kubernetes 预留命名空间 kubernetes.io 用于所有的标签和注解。 本文档有两个作用,一是作为可用值的参考,二是作为赋值的协调点。 kube
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/workloads/pods/pod-topology-spread-constraints/ 你可以使用 拓扑分布约束(Topology Spread Constraints) 来控制 Pods 在集群内故障域 之
阅读全文
摘要:本文介绍如何删除 StatefulSet 管理的 Pods,并解释这样操作时需要记住的注意事项。 准备开始 这是一项相当高级的任务,并且可能会违反 StatefulSet 固有的某些属性。 继续任务之前,请熟悉下面列举的注意事项。 StatefulSet 注意事项 在 StatefulSet 的正常
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/workloads/pods/ Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。 Pod (就像在鲸鱼荚或者豌豆荚中)是一组(一个或多个) 容器; 这些容器共享存储、网络、以及怎样运行
阅读全文
摘要:概述 类似于许多具有生命周期回调组件的编程语言框架,例如 Angular、Kubernetes 为容器提供了生命周期回调。 回调使容器能够了解其管理生命周期中的事件,并在执行相应的生命周期回调时运行在处理程序中实现的代码。 容器回调 有两个回调暴露给容器: PostStart 这个回调在容器被创建之
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/containers/images/ 更新镜像 当你最初创建一个 Deployment、 StatefulSet、Pod 或者其他包含 Pod 模板的对象时,如果没有显式设定的话,Pod 中所有容器的默认镜像 拉取策
阅读全文
摘要:每个运行的容器都是可重复的; 包含依赖环境在内的标准,意味着无论您在哪里运行它,您都会得到相同的行为。 容器将应用程序从底层的主机设施中解耦。 这使得在不同的云或 OS 环境中部署更加容易。 容器镜像 容器镜像是一个随时可以运行的软件包, 包含运行应用程序所需的一切:代码和它需要的所有运行时、应用程
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/architecture/nodes/ Kubernetes 通过将容器放入在节点(Node)上运行的 Pod 中来执行你的工作负载。 节点可以是一个虚拟机或者物理机器,取决于所在的集群配置。 每个节点包含运行 Po
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/overview/working-with-objects/namespaces/ Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为名字空间。 在一些文档里名字空间也称为命名
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/overview/working-with-objects/kubernetes-objects/ 理解 Kubernetes 对象 在 Kubernetes 系统中,Kubernetes 对象 是持久化的实体。 K
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/overview/components/ 当你部署完 Kubernetes, 即拥有了一个完整的集群。 一个 Kubernetes 集群由一组被称作节点的机器组成。这些节点上运行 Kubernetes 所管理的容器化
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/concepts/overview/what-is-kubernetes/ Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/setup/best-practices/certificates/ 集群是如何使用证书的 Kubernetes 需要 PKI 才能执行以下操作: Kubelet 的客户端证书,用于 API 服务器身份验证 API 服务器端点的证书
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/kubelet-integration/ kubeadm CLI 工具的生命周期与 kubelet 解耦;kubelet 是一个守护程序,在 Kub
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/high-availability/ #准备开始 需要以下基础设施: 配置满足 kubeadm 的最低要求 的三台机器作为控制面节点 配置满足 ku
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/ha-topology/ 本页面介绍了配置高可用(HA) Kubernetes 集群拓扑的两个选项。 您可以设置 HA 集群: 使用堆叠(stack
阅读全文
摘要:参考: https://kubernetes.io/zh/docs/reference/command-line-tools-reference/kube-apiserver/ https://kubernetes.io/docs/reference/command-line-tools-refer
阅读全文
摘要:K8s版本:v1.21 #准备开始 参考:https://www.cnblogs.com/varden/p/15042383.html 你还需要使用可以在新集群中部署特定 Kubernetes 版本对应的 kubeadm。 kubeadm 工具的整体功能状态为一般可用性(GA)。一些子功能仍在积极开
阅读全文
摘要:这一行为是 预期之中 的,因为系统就是这么设计的。 kubeadm 的网络供应商是中立的,因此管理员应该选择 安装 pod 的网络插件。 你必须完成 Pod 的网络配置,然后才能完全部署 CoreDNS。 在网络被配置好之前,DNS 组件会一直处于 Pending 状态。
阅读全文
摘要:如果你注意到 kubeadm init 在打印以下行后挂起: [apiclient] Created API client, waiting for the control plane to become ready 这可能是由许多问题引起的。最常见的是: 网络连接问题。在继续之前,请检查你的计算机
阅读全文
摘要:如果在运行 kubeadm init 命令时,遇到以下的警告 [preflight] WARNING: ebtables not found in system path [preflight] WARNING: ethtool not found in system path 那么或许在你的节点上
阅读全文
摘要:K8s版本:v1.21 参考:https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ 准备开始 一台兼容的 Linux 主机。Kubernetes 项目为基于 Debian 和
阅读全文
摘要:$ sudo vim /etc/apt/apt.conf.d/proxy.conf Acquire::http::Proxy "http://<账号>:<密码>@192.168.1.1:3128"; Acquire::https::Proxy "http://<账号>:<密码>@192.168.1.
阅读全文
摘要:$ sudo mkdir -p /etc/systemd/system/docker.service.d $ sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf [Service] Environment="HTTP_PROXY
阅读全文
摘要:你需要在集群内每个节点上安装一个 容器运行时 以使 Pod 可以运行在上面。 在 Linux 上结合 Kubernetes 使用的几种通用容器运行时: containerd CRI-O Docker Cgroup 驱动程序 控制组用来约束分配给进程的资源。 当某个 Linux 系统发行版使用 sys
阅读全文
摘要:版本支持策略 Kubernetes 版本号格式为 x.y.z,其中 x 为大版本号,y 为小版本号,z 为补丁版本号。 版本号格式遵循 Semantic Versioning 规则。 Kubernetes 项目会维护最近的三个小版本分支(1.21, 1.20, 1.19)。 Kubernetes 1
阅读全文
摘要:默认网桥 root@ubuntu18:~# ifconfig docker0 docker0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadc
阅读全文
摘要:版本:v2.5 Rancher介绍 什么是 Rancher? 参考:https://docs.rancher.cn/docs/rancher2.5/overview/_index Rancher 是为使用容器的公司打造的容器管理平台。Rancher 简化了使用 Kubernetes 的流程,开发者可
阅读全文
摘要:运行构建良好的容器会极大的影响环境的整体性能和安全性。 关于容器安全的详细信息,也可以参考 Rancher 的容器安全指南。以下是一些设置容器的技巧。 https://rancher.com/complete-guide-container-security ##使用通用容器操作系统 在可能的情况下
阅读全文
摘要:#NGINX 配置示例:/etc/nginx/nginx.conf worker_processes 4; worker_rlimit_nofile 40000; events { worker_connections 8192; } stream { upstream rancher_server
阅读全文
摘要:#对于etcd、controlplane 和 worker节点,运行以下命令: firewall-cmd --permanent --add-port=22/tcp firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent
阅读全文
摘要:#扩展 keyspace 容量 参考:https://etcd.io/docs/v3.4.0/op-guide/maintenance/#space-quota etcd 的默认的 keyspace 大小为 2GB,上限为 8GB。当您运行具有 15 个或更多集群的大型 Rancher 安装时,建议
阅读全文
摘要:#存储和数据保留 Prometheus 所需的存储空间与您存储的时间序列和标签的数量以及您配置的数据保留量直接相关。需要注意的是,Prometheus 并不是用来作为长期指标存储的。数据保留时间通常只有几天,而不是几周或几个月。原因是,Prometheus 不会对其存储的指标进行任何聚合。这很好,因
阅读全文
摘要:版本:v2.5 参考:https://docs.rancher.cn/docs/rancher2.5/quick-start-guide/_index #一、手动快速部署 执行以下命令: docker run -d --privileged --restart=unless-stopped \ -p
阅读全文
摘要:参考:https://kubernetes.io/zh/docs/setup/best-practices/cluster-large/ 集群是运行 Kubernetes 代理的、 由控制平面管理的一组 节点(物理机或虚拟机)。 Kubernetes v1.21 支持的最大节点数为 5000。 更具
阅读全文
摘要:ETCD版本:v3.5 参考:https://etcd.io/docs/v3.5/op-guide/hardware/ etcd 通常在资源有限的情况下运行良好,用于开发或测试目的; 在笔记本电脑或便宜的云机器上使用 etcd 进行开发是很常见的。 但是,在生产中运行 etcd 集群时,一些硬件指南
阅读全文
摘要:Rancher版本:v2.5 本节描述 Kubernetes 中的 etcd 节点、 controlplane 节点和 worker 节点的角色,以及这些角色如何在集群中协同工作。 线条显示了组件之间的通信。颜色纯粹用于视觉辅助。 ##etcd etcd 角色的节点将运行 etcd,etcd 是一个
阅读全文