目录

静态pod

使用步骤:

关键特性说明:

常见使用场景:

案例:

环境变量

配置全景解析

实操:​​

查看etcd集群节点信息

查看集群健康状态

数据库操作命令

增加(put)

查询(get)

删除(del)

租约命令

添加租约

删除租约


静态pod

以下是一个简洁实用的 ​静态 Pod (Static Pod) 模板,适用于在 Kubernetes 节点上直接部署关键组件(如 etcd、kube-apiserver 等):

# static-pod.yaml
apiVersion: v1
kind: Pod
metadata:name: my-static-pod      # Pod名称namespace: default       # 命名空间(静态Pod不受Namespace限制)
spec:containers:- name: main-container  # 容器名称image: nginx:latest   # 容器镜像imagePullPolicy: IfNotPresentports:- containerPort: 80    # 容器暴露端口resources:limits:              # 资源限制(可选)cpu: "0.5"memory: "512Mi"livenessProbe:         # 存活探针(可选)httpGet:path: /port: 80initialDelaySeconds: 5periodSeconds: 10restartPolicy: Always    # 重启策略(必须为Always)

使用步骤:

  1. 保存文件
    将上述内容保存为 YAML 文件(如 my-static-pod.yaml

  2. 放置到监控目录
    复制到 Master 节点的静态 Pod 目录(默认 /etc/kubernetes/manifests):

    sudo cp my-static-pod.yaml /etc/kubernetes/manifests/
  3. 自动生效
    Kubelet 会自动检测并创建该 Pod(无需 kubectl apply):

    # 查看Pod状态(约10-20秒后生效)
    kubectl get pods

关键特性说明:

特性说明
无需控制平面由节点上的 ​Kubelet 直接管理,不经过 API Server
高可用保障即使控制平面崩溃,静态 Pod 仍能运行
部署位置必须放在 Kubelet 的 --pod-manifest-path 指定目录(默认 /etc/kubernetes/manifests
命名规则名称需唯一,避免与其他静态 Pod 冲突
重启策略必须为 Always(Kubelet 会持续监控并重启)
删除方式只能通过删除节点上的 YAML 文件来移除 Pod

常见使用场景:

  1. 部署控制平面组件

    # 典型目录结构(Kubeadm默认配置)
    /etc/kubernetes/manifests/
    ├── etcd.yaml
    ├── kube-apiserver.yaml
    ├── kube-controller-manager.yaml
    └── kube-scheduler.yaml
  2. 节点级监控/日志代理

    containers:
    - name: node-exporterimage: prom/node-exporter:latest
  3. 网络插件组件

    containers:
    - name: kube-proxyimage: k8s.gcr.io/kube-proxy:v1.24.0

案例:

###  编辑pod文件
[root@k8s-master ~]# vim nginx.yaml
[root@k8s-master ~]# cp ./nginx.yaml /etc/kubernetes/manifests/
[root@k8s-master ~]# cd /etc/kubernetes/manifests/
[root@k8s-master manifests]# ls
etcd.yaml  kube-apiserver.yaml  kube-controller-manager.yaml  kube-scheduler.yaml  nginx.yaml###  自动生成pod,
[root@k8s-master manifests]# kubectl get po
NAME                             READY   STATUS    RESTARTS   AGE
mynginx-k8s-master               1/1     Running   0          12s
nginx-deploy1-75c4474d6d-9nzlb   1/1     Running   0          7m42s
nginx-deploy1-75c4474d6d-mv6tp   1/1     Running   0          7m51s
nginx-deploy1-75c4474d6d-zv9cz   1/1     Running   0          7m47s#### 复制一份给node节点
[root@k8s-master manifests]# scp nginx.yaml 192.168.158.34:/root/Authorized users only. All activities may be monitored and reported.
nginx.yaml                                                                      100%  386     1.0MB/s   00:00 ###在node节点操作
[root@k8s-node1 ~]# cp nginx.yaml /etc/kubernetes/manifests/###  master节点 查看pod
[root@k8s-master manifests]# kubectl get po
NAME                             READY   STATUS    RESTARTS   AGE
mynginx-k8s-master               1/1     Running   0          5m2s
mynginx-k8s-node1                1/1     Running   0          7s
nginx-deploy1-75c4474d6d-9nzlb   1/1     Running   0          12m
nginx-deploy1-75c4474d6d-mv6tp   1/1     Running   0          12m
nginx-deploy1-75c4474d6d-zv9cz   1/1     Running   0          12m

etcd

集群管理命令

etcdctl在etcd数据库里面有,但是它etcdctl命令没有映射出来

想要正常使用就,网上github下载

etcdctl是一个**命令行的客户端**,它提供了一些命令,可以方便我们在对服务进行测试或者手动修改数据库内容。etcdctl命令基本用法如下所示:

etcdctl [global options] command [command options] [args...]

具体的命令选项参数可以通过 etcdctl command --help来获取相关帮助

环境变量

获得etcd数据库的访问url

[root@k8s-master ~]# kubectl -n kube-system get pods etcd-k8s-master -o yaml  | grep -A10 "containers:" | grep "https://"- --advertise-client-urls=https://192.168.158.33:2379- --initial-advertise-peer-urls=https://192.168.158.33:2380- --initial-cluster=k8s-master=https://192.168.158.33:2380

参数解析
1. --advertise-client-urls=https://192.168.158.15:2379
作用:客户端访问地址

含义:

https://192.168.158.15:2379 是 etcd 对外公开的服务地址

Kubernetes 组件(如 kube-apiserver)通过此地址连接 etcd

关键点:

这是集群内部通信的核心入口

必须与 kube-apiserver 的 --etcd-servers 参数配置一致

2. --initial-advertise-peer-urls=https://192.168.158.15:2380
作用:集群节点间通信地址

含义:

https://192.168.158.15:2380 是 etcd 节点之间互相通信的地址

用于 etcd 集群内部数据同步、选举等

关键点:

此地址必须能被其他 etcd 节点访问(若为多节点集群)

端口 2380 是 etcd 节点间通信的默认端口

3. --initial-cluster=k8s-master=https://192.168.158.15:2380
作用:定义 etcd 初始集群成员

含义:

k8s-master:当前 etcd 节点的名称(通常与主机名一致)

https://192.168.158.15:2380:该节点的 peer 通信地址

关键点:

在单节点集群中,只需配置自身地址

在多节点集群中,需列出所有成员(如 node1=https://IP1:2380,node2=https://IP2:2380)

此参数仅在集群初始化时生效,后续节点变更需通过 etcdctl 操作

配置全景解析

参数协议/端口通信方向使用者安全机制
advertise-client-urlsHTTPS/2379入站kube-apiserverTLS 加密 + 证书认证
initial-advertise-peer-urlsHTTPS/2380入站其他 etcd 节点TLS 加密 + 证书认证
initial-cluster--etcd 启动时自检定义集群拓扑

如果遇到使用了TLS加密的集群,通常每条指令都需要指定证书路径和etcd节点地址,可以把相关命令行参数添加在环境变量中,在~/.bashrc添加以下内容:

[root@k8s-master etcd]# cat ~/.bashrc
#没有调用变量就可以不用写下面这两个
HOST_1=https://192.168.166.33:2379
ENDPOINTS=${HOST_1}
# 如果需要使用原生命令,在命令开头加一个\ 例如:\etcdctl command
#每次连接执行如下命令
#向 .bashrc 里添加如下命令行
alias etcdctl="etcdctl --cert /etc/kubernetes/pki/etcd/peer.crt --key /etc/kubernetes/pki/etcd/peer.key --endpoints=https://192.168.158.33:2379  --insecure-skip-tls-verify"
​
#然后执行
[root@k8s-master ~]# source .bashrc
实操:

[root@k8s-master ~]# cat .bashrc
# .bashrc
​
# User specific aliases and functions
​
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
​
# Source global definitions
if [ -f /etc/bashrc ]; then. /etc/bashrc
fi
​
###  添加之后如下
[root@k8s-master ~]# vim .bashrc
# .bashrc
​
# User specific aliases and functions
​
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
​
alias etcdctl="etcdctl --cert /etc/kubernetes/pki/etcd/peer.crt --key /etc/kubernetes/pki/etcd/peer.key --endpoints=https://192.168.158.33:2379  --insecure-skip-tls-verify"
​
# Source global definitions
if [ -f /etc/bashrc ]; then. /etc/bashrc
fi
​
#然后执行,就可以使用etcdctl命令了
[root@k8s-master ~]# source .bashrc
​

证书存放位置

查看etcd版本

[root@k8s-master ~]# etcdctl version
etcdctl version: 3.5.17
API version: 3.5
查看etcd集群节点信息
[root@k8s-master ~]#  etcdctl  member list -w table

查看集群健康状态

英文表头 (English Header)中文翻译 (Chinese Translation)说明 (Explanation)
ENDPOINT端点集群中节点的网络访问地址。
IDID节点的唯一标识符。
VERSION版本节点运行的软件/数据库版本。
DB SIZE数据库大小节点上数据库的数据量大小。
IS LEADER是否为领导者指示该节点是否是集群中的主节点(领导者)。
IS LEARNER是否为学习者指示该节点是否是一个学习者角色(通常不参与投票,只接收数据)。
RAFT TERMRAFT 任期Raft 一致性算法中的任期编号。
RAFT INDEXRAFT 索引Raft 日志的当前索引位置。
RAFT APPLIED INDEXRAFT 已应用索引已被应用到状态机的最新日志条目索引。

总结一下:​
这张表展示了基于 ​Raft 一致性算法​(常用于 etcd、Consul 等分布式系统)的集群节点状态信息。通过此表可以快速了解哪个节点是主节点(Leader)、各节点的数据同步进度(索引信息)以及基本状态。

数据库操作命令

增加(put)

添加一个键值,基本用法如下所示:

etcdctl put [options] <key> <value> [flags]

常用参数如下所示:

参数功能描述
–prev-kv输出修改前的键值

注意事项:

  • 其中value接受从stdin的输入内容

  • 如果value是以横线-开始,将会被视为flag,如果不希望出现这种情况,可以使用两个横线代替–

  • 若键已经存在,则进行更新并覆盖原有值,若不存在,则进行添加

增加(put):

[root@k8s-master ~]# etcdctl put name cuiliang
OK
[root@k8s-master ~]# etcdctl put location -- -beijing
OK
[root@k8s-master ~]# etcdctl put foo1 bar1
OK
[root@k8s-master ~]# etcdctl put foo2 bar2
OK
[root@k8s-master ~]# etcdctl put foo3 bar3
OK

查询(get)

常用参数如下所示:

参数功能描述
–hex以十六进制形式输出
–limit number设置输出结果的最大值
–prefix根据prefix进行匹配key
–order对输出结果进行排序,ASCEND 或 DESCEND
–sort-by按给定字段排序,CREATE, KEY, MODIFY, VALUE, VERSION
–print-value-only仅输出value值
–from-key按byte进行比较,获取大于等于指定key的结果
–keys-only仅获取keys

基本命令

#获取所有的键值对
etcdctl get / --prefix --keys-only# 获取键值
[root@tiaoban etcd]# etcdctl get name
name
cuiliang# 只获取值
[root@tiaoban etcd]# etcdctl get location --print-value-only
-beijing# 批量取从foo1到foo3的值,不包括foo3
[root@tiaoban etcd]# etcdctl get foo foo3 --print-value-only
bar1
bar2# 批量获取前缀为foo的值
[root@tiaoban etcd]# etcdctl get --prefix foo --print-value-only
bar1
bar2
bar3# 批量获取符合前缀的前两个值
[root@tiaoban etcd]# etcdctl get --prefix --limit=2 foo --print-value-only
bar1
bar2# 批量获取前缀为foo的值,并排序
[root@tiaoban etcd]# etcdctl get --prefix foo --print-value-only --order DESCEND
bar3
bar2
bar1

删除(del)

删除键值,基本用法如下所示:

常用参数如下所示:

参数功能描述
–prefix根据prefix进行匹配删除
–prev-kv输出删除的键值
–from-key按byte进行比较,删除大于等于指定key的结果
# 删除name的键值
[root@tiaoban etcd]# etcdctl del name
1
# 删除从foo1到foo3且不包含foo3的键值
[root@tiaoban etcd]# etcdctl del foo1 foo3
2
# 删除前缀为foo的所有键值
[root@tiaoban etcd]# etcdctl del --prefix foo
1

租约命令

租约具有生命周期,需要为租约授予一个TTL(time to live),将租约绑定到一个key上,则key的生命周期与租约一致,可续租,可撤销租约,类似于redis为键设置过期时间

添加租约
[root@k8s-master ~]# etcdctl lease grant 60
lease 1d069904ddf74ef3 granted with TTL(60s)
[root@k8s-master ~]# etcdctl put --lease=1d069904ddf74ef3 foo bar1
OK
[root@k8s-master ~]# etcdctl get foo
foo
bar1
[root@k8s-master ~]# etcdctl get foo
[root@k8s-master ~]# 
返回为空

删除租约

通过租约 ID 撤销租约,撤销租约将删除其所有绑定的 key。 主要用法如下所示:

# 设置600秒后过期租约
[root@tiaoban etcd]# etcdctl lease grant 600
lease 6e1e86f4c6512a39 granted with TTL(600s)
# 把foo和租约绑定,600秒后过期
[root@tiaoban etcd]# etcdctl put --lease=6e1e86f4c6512a39 foo bar
OK
# 查看租约详情
[root@tiaoban etcd]# etcdctl lease timetolive --keys 6e1e86f4c6512a39
lease 6e1e86f4c6512a39 granted with TTL(600s), remaining(556s), attached keys([foo])
# 删除租约
[root@tiaoban etcd]# etcdctl lease revoke 6e1e86f4c6512a39
lease 6e1e86f4c6512a39 revoked
# 查看租约详情
[root@tiaoban etcd]# etcdctl lease timetolive --keys 6e1e86f4c6512a39
lease 6e1e86f4c6512a39 already expired
# 获取键值
[root@tiaoban etcd]# etcdctl get foo
返回为空

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/95390.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/95390.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/95390.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PowerPoint和WPS演示如何在放映PPT时用鼠标划重点

在播放PPT的时候&#xff0c;可以在屏幕上右键&#xff0c;在WPS演示中设置“墨迹画笔”为鼠标以外的其他笔形&#xff0c;在PowerPoint中设置指针选项为其他笔形&#xff0c;然后点击鼠标左键即可对屏幕上的内容进行标记。如果要退出&#xff0c;同样的路径操作取消鼠标形状即…

销售事业十年规划,并附上一套能帮助销售成长的「软件工具组合」

销售事业十年规划&#xff0c;并附上一套能帮助销售成长的 软件工具组合。这样你既有职业发展的路线图&#xff0c;也有日常可用的工具支撑。&#x1f51f; 年销售事业规划 第1-2年&#xff1a;打基础目标&#xff1a;掌握销售流程&#xff0c;建立第一个客户池。重点&#xff…

如何在赛中完整的呈现数学建模模型

数模的完备性一直是国赛中评审的重点&#xff0c;也是大家赛中最容易失分的点。具体来讲&#xff0c;2023年C题国一使用了ARIMA,很多省三论文也是ARIMA。二者之所以出现这种巨大的等级差异不是因为模型问题&#xff0c;而是后者模型并不完备&#xff0c;缺少很多模型必要元素。…

蜂窝物联网模组:电动两轮车新国标实施下的关乎安全与智能化支撑

蜂窝物联网模组正成为电动两轮车新国标实施后不可或缺的关键部件&#xff0c;这一转变源于新国标对电动自行车安全性和智能化的强制性要求 。2025年9月1日起正式实施的GB17761—2024《电动自行车安全技术规范》不仅强化了防火阻燃、防篡改等安全标准&#xff0c;还首次将北斗定…

DevOps篇之利用Jenkins实现多K8S集群的版本发布

重点说明 在 Jenkins 中实现多 K8s 集群的版本发布与版本控制&#xff0c;核心在于解决集群身份认证、配置隔离、发布策略协调、版本统一追溯四大问题。以下是具体实现方案&#xff0c;结合工具链集成与流水线设计&#xff0c;确保多集群环境下的发布一致性与可控性。 一、核心…

Day16_【机器学习—KNN算法】

一、KNN 简介KNN&#xff1a;K-近邻算法 &#xff08;K Nearest Neighbor&#xff09;算法思想&#xff1a;一个样本最相似的 k 个样本中的大多数属于某一个类别&#xff0c;则该样本也属于这个类别距离计算&#xff1a;欧氏距离二、KNN 解决两类问题分类问题与回归问题分类流程…

《架构师手记:SpringCloud整合Nacos实战·一》

《架构师手记&#xff1a;SpringCloud整合Nacos实战一》 &#x1f308; 第一章&#xff1a;SpringCloud与Nacos的初识之旅 引言 在微服务架构的浪潮中&#xff0c;服务发现和配置管理成为了每个架构师必须面对的挑战。今天&#xff0c;我们将开启一段SpringCloud与Nacos的探…

卷积神经网络训练全攻略:从理论到实战

卷积神经网络&#xff08;Convolutional Neural Networks, CNN&#xff09;作为深度学习的重要分支&#xff0c;已成为计算机视觉领域的核心技术。从图像分类到目标检测&#xff0c;从人脸识别到医学影像分析&#xff0c;CNN 展现出了强大的特征提取和模式识别能力。本文将全面…

从零开始学习n8n-定时器+HTTP+飞书多维表格(上)

概述零基础也能把自动化玩明白&#xff1a;本篇将从“为什么要做自动化”出发&#xff0c;带你在 n8n 里新建第一个工作流&#xff0c;只用两个核心节点——Schedule Trigger&#xff08;定时器&#xff09; 与 HTTP Request。你会学会如何按固定频率触发流程、向接口发起请求、…

小白成长之路-k8s原理(二)

文章目录一、Service原理1.1概述1.2为什么需要service1.3service1.4service类型1.5service组件协同二、configMap原理2.1概述2.2命令2.3类型三、volume2.1emptydir2.2hostPath2.3pv/pvc2.4storageClass四、调度管理3.1概念3.2特点3.3亲和性3.4容忍和污点3.5固定节点调度五、etc…

2025 数字化转型期,值得关注的 10 项高价值证书解析

2025 年&#xff0c;数字化转型已迈入深度渗透阶段&#xff0c;大数据、人工智能、云计算等技术重塑各行业格局&#xff0c;相关领域人才缺口持续扩大。对于职场人突破瓶颈、大学生抢占就业先机而言&#xff0c;适配转型需求的专业证书已成为核心竞争力。本文结合行业经验&…

STM32 入门教程:从零基础到项目实战

STM32 微控制器凭借其高性能、低功耗、丰富外设以及庞大的生态系统&#xff0c;成为工程师和开发者的首选。对于刚接触 STM32 的新手来说&#xff0c;面对复杂的芯片架构和开发流程&#xff0c;往往会感到无从下手。本文将以通俗易懂的语言&#xff0c;结合实际案例&#xff0c…

ros、slam、激光雷达、自动驾驶相关学习内容和计划

明白 ✅。你现在做的是 LHD自动驾驶&#xff0c;核心技术是 SLAM、LiDAR、ROS、感知与规划控制。这类项目涉及“工程落地 学术算法 安全规范”三大方面。我给你一个循序渐进的学习方案&#xff08;从基础到应用&#xff09;&#xff0c;并附带开源项目推荐&#xff0c;方便你…

Flutter 完全组件化的项目结构设计实践

Flutter 完全组件化的项目结构设计实践 在做 Flutter 项目的时候&#xff0c;随着业务不断扩展&#xff0c;如果所有代码都堆在 lib/ 目录里&#xff0c;后期维护会越来越痛苦。组件化&#xff08;Componentization&#xff09; 是一种常见的解决方案&#xff0c;它能让项目更清…

文件上传漏洞基础及挖掘流程

基础介绍定义用户通过文件上传的功能模块进行文件上传时&#xff0c;如果服务端没有对上传文件进行严格的验 证和过滤&#xff0c;而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。则 攻击者可以通过上传木马&#xff0c;webshell等恶意文件&#xff0c;经…

【C2000】C2000的硬件设计指导与几点意见

《C2000 MCU硬件设计指南》 提示:《C2000 MCU硬件设计指南》用于指导C2000 MCU应用中的原理图设计与注意事项 文章目录 《C2000 MCU硬件设计指南》 前言 1.器件选型与封装决策 2.电源设计与去耦策略 3.时钟与复位电路设计 4.PCB布局与接地策略 5.EMI/EMC与ESD防护 [F2800x C20…

屏随人动+视觉魔方+多样主题+智能留言,涂鸦Wukong AI 2.0助力打造爆款带屏云台相机

一、带屏云台机&#xff1a;超硬核的市场魔力 作为 IPC 消费级别里的第一大品类&#xff0c;云台机市场一直处于稳步增长阶段&#xff0c;2024 年全球出货量达到 7000 万台。而其中的最强潜力股–带屏云台机&#xff0c;在 AI 大模型的强势赋能下&#xff0c;更于今年迎来全新…

Polkadot - ELVES

ELVES (Endorsing Light Validity Evaluator System) 即 轻量级背书有效性评估系统 。它是 JAM 可扩展且自适应的区块审计协议&#xff0c;即是JAM用于finalise区块的协议, 确保只有有效区块才能最终确定。 论文 – 2024-961 : Jeff Burdges、Cevallos 等人在2024年提出的 ELV…

【科研写作自动化工具】如何​​用AI技术组合(大模型+多Agent+自动化)打造一个“智能论文生产线”​​,把写作流程变成自动化

自主构建智慧科研写作系统——融合LLM语义理解、多智能体任务协同与n8n自动化工作流n8n 是一款开源的 ​​工作流自动化工具​​&#xff0c;类似于 Zapier 或 Make&#xff08;原 Integromat&#xff09;&#xff0c;但更注重灵活性和开发者友好性。在课程文件中提到的 ​​n8…

window显示驱动开发—监视器类函数驱动程序

设备节点用于表示已连接到一台监视器的显示适配器上的每个视频输出。 设备节点是显示适配器设备节点的子节点。通常情况下&#xff0c;设备堆栈中只有两个设备对象代表一对视频输出/监视器&#xff1a;物理设备对象 (PDO)。功能设备对象 (FDO)。在某些情况下&#xff0c;筛选器…