Myluzh Blog

K8S 命名空间资源配额 (ResourceQuota) 和资源限制 (LimitRange)

2024-9-6 myluzh Kubernetes

0x00 概述 在 Kubernetes 中,ResourceQuota 和 LimitRange 是两种用于管理命名空间资源使用的重要机制。它们帮助确保集群资源的有效分配,防止资源过度消耗。下面将介绍如何配置这两种机制,并解释它们的相互作用。 ResourceQuota: 适用于整个命名空间,限制命名空间中所有 Pod 的总资源使用量。 如果命名空间中的资源总使用量超出配额,则无法创建新的资源(例如,Pod、服务等)。 LimitRange: 适用于命名空间中的单个 Pod 和容器,确保它们的资源请求和限制在指定的范围内。 如果容器的资源请求或限制超出 LimitRange 定义的范围,Kubernetes 将拒绝 Pod 的创建。 0x01 使用 ResourceQuota 限制命名空间的总资源 ResourceQuota 用于设置一个命名空间中所有资源的总量上限。这包括 CPU、内存、存储、Pod 数量等。它确保命名空间中的资源使用不会超出指定的配额。 apiVersion: v1 kind: ResourceQuota metadata: name: example-quota ...

阅读全文>>

标签: k8s kubernetes Namespace ResourceQuota LimitRange 资源限制

评论(0) (149)

K8S 中的优雅终止:确保服务平稳关闭

2024-8-2 myluzh Kubernetes

0x01 什么是优雅停止? 优雅终止是 Kubernetes 中一个非常重要的概念,它关系到服务的稳定性和用户体验。通过合理配置和使用 Kubernetes 提供的工具,我们可以确保应用在终止时能够做到尽可能的平滑和优雅,这不仅提升了系统的可靠性,也增强了用户对服务的信任。 优雅终止指在终止应用或服务时,确保当前正在进行的操作能够正常完成,同时避免新请求的进入,使得服务能够平稳地关闭。在 Kubernetes 中,这通常涉及到 Pod 的终止流程。 0x02 Pod 终止流程 1、Pod 状态变为 Terminating Pod 被删除,API 层面上 metadata.deletionTimestamp 字段会被标记上删除时间。 2、更新转发规则 kube-proxy 发现 Pod 被删除,开始更新转发规则,将 Pod 从 service 的 endpoint 列表中摘除掉,新流量不再转发到该 Pod。 3、销毁 Pod kubelet 发现 Pod 被删除,开始销毁 Pod。 执行 PreStop Hook:如果 Pod 中有配置 preStop Hook,Kubernetes 会执行这些命令。 ...

阅读全文>>

标签: k8s kubernetes 优雅停止 PreStop Readiness SIGTERM Liveness

评论(0) (377)

K8S Ingress-nginx高级用法总结

2023-11-20 myluzh Kubernetes

0x01 Ingress-nginx的域名重定向(Redirect) # 关键配置 #annotations: # nginx.ingress.kubernetes.io/permanent-redirect: 'https://www.baidu.com/' --- apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: annotations: nginx.ingress.kubernetes.io/permanent-redirect: 'https://www.baidu.com' name: ingress-xfsh namespace:xfsh spec: rules: - host: ingress.xfsh.com http: paths: - backend: serviceName: ingress-xfsh servicePort: 80 path: / ...

阅读全文>>

标签: k8s kubernetes nginx Ingress

评论(0) (369)

K8S笔记-搭建集群(通过二进制方式)

2023-8-1 myluzh Kubernetes

0x00 安装要求 在开始之前,部署 Kubernetes 集群机器需要满足以下几个条件: (1)一台或多台机器,操作系统 CentOS7.x-86_x6 (2)硬件配置: 2GB 或更多 RAM,2个 CPU 或更多 CPU,硬盘 30GB 或更多 (3)集群中所有机器之间网络互通 (4)可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点 (5)禁止 swap 分区 组件版本:k8s组件版本v1.19.16  etcd版本3.3.10 服务器 主机名 IP地址 主要组件 master+etcd01 master 172.16.10.20 kube-apis...

阅读全文>>

标签: k8s kubernetes 二进制

评论(0) (574)

Kubernetes(k8s)-Namespace命名空间

2023-7-4 myluzh Kubernetes

0x01 前言 如果一个集群中部署了多个应用,所有应用都在一起,就不太好管理,也可以导致名字冲突等。 我们可以使用 namespace 把应用划分到不同的命名空间,跟代码里的 namespace 是一个概念,只是为了划分空间。 0x02 命令 # 创建命名空间 kubectl create namespace testapp # 部署应用到指定的命名空间 kubectl apply -f app.yml --namespace testapp # 查询 kubectl get pod --namespace kube-system 0x03 增强工具 kubens 可以用 kubens 快速切换 namespace,kubens地址:https://github.com/ahmetb/kubectx 1.安装kubens sudo git clone https://github.com/ahmetb/kubectx /opt/kubectx sudo ln -s /opt/kubectx/kubectx /usr/local/bin/kubectx sudo ln -s ...

阅读全文>>

标签: k8s kubernetes Namespace 命名空间

评论(0) (415)

Kubernetes(k8s)-Helm

2023-6-30 myluzh Kubernetes

0x01 安装Helm 1.github安装helm curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash 2.国内加速源安装helm wget https://mirrors.huaweicloud.com/helm/v3.9.4/helm-v3.9.4-linux-amd64.tar.gz tar -zxvf helm-v3.9.4-linux-amd64.tar.gz sudo cp linux-amd64/helm /usr/local/bin/ helm version 0x02 添加Chart仓库 # 配置helm源地址 helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts helm repo add huaweicloud https://mirrors.huaweicloud.com/helm/ helm repo add bitnami https://chart...

阅读全文>>

标签: k8s kubernetes helm

评论(0) (310)