K8s进阶之修改Service的NodePort的端口范围
概述
Kubernetes 默认的NodePort端口范围为 30000~32767。
NodePort端口范围为什么是30000~32767呢?
避免与系统保留端口冲突
知名端口(0~1023)
这些端口通常分配给 HTTP(80)、HTTPS(443)、SSH(22)等系统服务或标准协议,Kubernetes 不会占用。
注册端口(1024~49151)
1024~49151 端口用于动态分配给用户进 ...
K8s进阶之外部访问Pod的几种方式
概述
K8s集群内部的Pod默认是不对外提供访问,只能在集群内部进行访问。这样做是为什么呢?
安全性考虑
Kubernetes设计时遵循最小权限原则,即组件仅获得完成其任务所需的最少权限。直接暴露Pod给外部网络可能会引入安全隐患,比如让攻击者更容易定位和攻击运行在Pod内的服务。通过限制Pod的直接访问,Kubernetes鼓励使用 ...
K8s进阶之MetalLB实现LoadBalancer
概述
LoadBalancer官网文档:https://kubernetes.io/zh-cn/docs/concepts/services-networking/service/#loadbalancer
MetalLB官网地址:https://metallb.universe.tf/installation/
MetalLB仓库地址:https://github.com/metallb/metallb
LoadBalancer是实现负载均衡的Service,主要应用场景是云厂商环境,它能够为服务提 ...
K8s进阶之一文搞懂PV,PVC及SC
前言
想了解Pod的基本存储,可以参考这篇文章:K8s新手系列之Pod的基本存储
概述
官方文档:
配置Pod使用PV进行存储:https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/configure-persistent-volume-storage/
PV(持久卷):https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes/
SC( ...
K8s新手系列之Pod的基本存储
概念
官方文档:https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/configure-volume-storage/
卷:https://kubernetes.io/zh-cn/docs/concepts/storage/volumes/
容器的生命周期可能很短,会被频繁地创建和销毁。那么容器在销毁时,保存在容器中的数据也会被清除。这种结果对用户来说,在某些情况下是不乐 ...
K8s新手系列之Endponit
概述
官方文档:https://kubernetes.io/zh-cn/docs/reference/kubernetes-api/service-resources/endpoints-v1/
Endpoint简称ep
Endpoint是kubernetes中的一个资源对象,存储在etcd中,用来记录一个service对应的所有pod的访问地址,它是根据service配置文件中selector描述产生的。
一个Service由一组Pod组成,这些Pod通过E ...
K8s新手系列之Service资源
概述
官方文档:https://kubernetes.io/zh-cn/docs/concepts/services-networking/service/
在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,这也就意味着不方便直接采用pod的ip对服务进行访问。
为了解决这个问题,kubernetes提供了Service资源,Service会对提供同 ...
Kubernetes 调度器打分算法详解:LeastAllocated 与 NodeAffinity
1️⃣ NodeResourcesLeastAllocated(资源最少分配)
📌 目标
优先将 Pod 调度到资源使用率最低的节点,防止热点节点,尽量实现负载均衡。
🧠 打分算法原理
对每个节点计算 CPU 和内存的使用率,然后反向打分:
score = (1 - (cpuRequested / cpuCapacity)) * 50 +
(1 - (memRequested / memCapacity)) * 50
分 ...
K8s进阶之Deployment的更新&回滚
更新概述
更新指的是对 Deployment 所管理应用的配置、镜像版本等进行修改并应用到集群中的过程。通过更新 Deployment,你能够实现应用功能的升级、修复漏洞、调整资源分配等操作。
更新触发条件
镜像版本变更:当需要更新应用的功能或修复已知问题时,通常会使用新的镜像版本。例如,从 nginx:1.14.2 更新到nginx:1.16.1 ...
K8s新手系列之为Pod容器设置环境变量
概述
官网:https://kubernetes.io/zh-cn/docs/tasks/inject-data-application/define-environment-variable-container/
创建 Pod 时,可以为其下的容器设置环境变量。通过配置文件的 env 或者 envFrom 字段来设置环境变量。
env:为每一个变量指定一个值,类似key=value的形式
envFrom:通过引用 ConfigMap 或 Secret 来 ...
K8s新手系列之初始Deployment资源
概述
官网:https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/
Deployment简称deploy,Deployment 用于管理运行一个应用负载的一组 Pod,通常适用于无状态的应用。
为了更好的解决服务编排的问题,kubernetes在V1.2版本开始,引入了Deployment控制器。值得一提的是,这种控制器并不直接管理pod ...
K8s新手系列之ReplicationController资源
概述
官网地址:https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/replicationcontroller/
ReplicationController 是一个比较原始的Pod控制器,已经被废弃,由ReplicaSet控制器替代,想要了解ReplicaSet可查看这篇文章:K8s新手系列之ReplicaSet资源
ReplicationController简称rc,称为副本控制器,其主要 ...
K8s新手系列之ReplicaSet资源
概述
官网地址:https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/replicaset/
ReplicaSet简称rs,其主要作用和ReplicationController一样,保证一定数量的pod正常运行,它会持续监听这些Pod的运行状态,一旦Pod发生故障,就会重启或重建。同时它还支持对pod数量的扩缩容和镜像版本的升降级。
相较于Repli ...
K8s新手系列之Secret资源
概述
官方文档:https://kubernetes.io/zh-cn/docs/concepts/configuration/secret/
在Kubernetes(k8s)中,Secret是一种用于存储和管理敏感信息(如密码、API密钥、TLS证书等)的资源对象。
Secret和ConfigMap类似,但是Secret专门用于保存机密数据。
如需学习ConfigMap请阅读这篇文章:K8s新手系列之ConfigMap资源
Secre ...
K8s新手系列之Label标签和Label选择器
概述
官网:https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/labels/
在K8s中,Label(标签) 是用于标识和组织集群资源(如Pod、Service、Deployment、Node等)的核心机制,其主要作用就是在各种资源上添加表示,用来对它们进行区分和选择。
Label的特点
一个Label会以key/value键值对的形式附 ...
K8s新手系列之namespace
概述
官方文档地址:https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/namespaces/
namespace是K8s系统中的一种非常重要的资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。
默认情况下,kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中,可能不想让两个Pod之间进行互相的访 ...
K8s新手系列之ConfigMap资源
概述
在 Kubernetes(K8s)中,ConfigMap 是一种 API 对象,用于将非机密性的数据保存到键值对中。Pod 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。
ConfigMap 允许你将配置清单与镜像内容分离,以保持容器化的应用程序的可移植性。 例如,你可以下载并运行相同的容器镜像来启动容器, 用于本地开发、系统测 ...
运维员工离职交接清单
概述
这里以负责 Zabbix 的员工离职为例. 实际上这是通用的, 你可以将 Zabbix 替换为任何业务系统, 任何运维工具, 任何其他场景.
为确保Zabbix监控系统平稳过渡,以下是离职员工必须移交的核心工作和资料清单,按优先级分类呈现:
一、基础访问权限移交
账户清单
Zabbix Web控制台管理员账号
被监控服务器的SNMP/Agent账 ...
K8s新手系列之Pod容器中的command和args指令
概述
command和args是containers下的两个指令,类似Dockerfile中的ENTRYPONIT和CMD指令。
官方文档地址:https://kubernetes.io/zh-cn/docs/tasks/inject-data-application/define-command-argument-container/
command
command功能同Dockerfile中的ENTRYPONIT指令,用于指定容器启动时要执行的命令。如果不设置command,容 ...
使用sealos快速搭建kubernetes集群!!!
什么是sealos?
Sealos 是一款基于 Kubernetes 的轻量级操作系统,专为云原生环境设计,主要用于快速部署和管理 Kubernetes 集群。它采用“容器化内核”的概念,将操作系统和 Kubernetes 深度集成,简化了集群的安装、运维和扩展流程。
sealos 是一个简单的 Golang 二进制文件,可以安装在大多数 Linux 操作系统中。支持在 ...