惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

I
InfoQ
博客园_首页
美团技术团队
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
H
Help Net Security
J
Java Code Geeks
T
Tailwind CSS Blog
Jina AI
Jina AI
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
G
Google Developers Blog
爱范儿
爱范儿
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
宝玉的分享
宝玉的分享
小众软件
小众软件
MongoDB | Blog
MongoDB | Blog
博客园 - 三生石上(FineUI控件)
L
LangChain Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
V
Visual Studio Blog
博客园 - Franky
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客 on 打工人日志

k8s RKE2 cilium L2 + envoy gateway 安装配置 k8s RKE2 vSphere 存储配置 OpenClaw 全能指南:从安装到进阶自动化实战 (2026 最终版) Kubernetes — skywalking + banyanDB APM监控部署 Kubernetes — promtail + loki + grafana 日志系统部署 k8s master 节点 Unauthorized Kubernetes — metalLB + Traefik 部署 Kubernetes — SSL 证书自动更新 Kubernetes — RKE2 + kube-vip + cilium 部署 使用TLSv1.3 升级nginx和openssl Proxmox VE(PVE) 更新到最新版本 kindle 邮件发送失败,错误代码E999 metallb + ingress-nginx + argocd 本地部署 iStoreOS(旁路由)使用openclash实现dns劫持 异常流量分析:图片库服务黑客入侵 openwrt 硬盘扩容 搭建ip地址检索服务 Kubernetes — k8s 手动安装 1.17.9 SELinux 问题:导致端口无法创建,无法访问 【福利】免费!本地部署!去除视频中移动的物体 通知:《打工人日报》迁移到独立板块 KyBook 3 | calibre-web - IOS系统最佳图书伴侣 Tmux 安装和使用教程 DockerHub 加速镜像部署 - 使用cloudflare 代理 docker的零停机部署 SD-webui 批量处理图片 ubuntu 安装 ComfyUI ubuntu 安装 stable-diffusion-webui 测试策略:微服务架构 单元测试:测试单元质量提升
编写 kubernetes 资源描述文件
2022-06-27 · via 博客 on 打工人日志

编写 kubernetes 资源描述文件

1. 部署一个应用

 1apiVersion: apps/v1 #与k8s集群版本有关,使用 kubectl api-versions 即可查看当前集群支持的版本
 2kind: Deployment #该配置的类型,我们使用的是 Deployment
 3metadata: #译名为元数据,即 Deployment 的一些基本属性和信息
 4  name: nginx-deployment #Deployment 的名称
 5  labels: #标签,可以灵活定位一个或多个资源,其中key和value均可自定义,可以定义多组,目前不需要理解
 6    app: nginx #为该Deployment设置key为app,value为nginx的标签
 7spec: #这是关于该Deployment的描述,可以理解为你期待该Deployment在k8s中如何使用
 8  replicas: 1 #使用该Deployment创建一个应用程序实例
 9  selector: #标签选择器,与上面的标签共同作用,目前不需要理解
10    matchLabels: #选择包含标签app:nginx的资源
11      app: nginx
12  template: #这是选择或创建的Pod的模板
13    metadata: #Pod的元数据
14      labels: #Pod的标签,上面的selector即选择包含标签app:nginx的Pod
15        app: nginx
16    spec: #期望Pod实现的功能(即在pod中部署)
17      containers: #生成container,与docker中的container是同一种
18        - name: nginx #container的名称
19          image: nginx:1.7.9 #使用镜像nginx:1.7.9创建container,该container默认80端口可访问

kubectl apply -f xxx.yaml

2、暴露应用

 1apiVersion: v1
 2kind: Service
 3metadata:
 4  name: nginx-service #Service 的名称
 5  labels: #Service 自己的标签
 6    app: nginx #为该 Service 设置 key 为 app,value 为 nginx 的标签
 7spec: #这是关于该 Service 的定义,描述了 Service 如何选择 Pod,如何被访问
 8  selector: #标签选择器
 9    app: nginx #选择包含标签 app:nginx 的 Pod
10  ports:
11    - name: nginx-port #端口的名字
12      protocol: TCP #协议类型 TCP/UDP
13      port: 80 #集群内的其他容器组可通过 80 端口访问 Service
14      nodePort: 32600 #通过任意节点的 32600 端口访问 Service
15      targetPort: 80 #将请求转发到匹配 Pod 的 80 端口
16  type: NodePort #Serive的类型,ClusterIP/NodePort/LoaderBalancer

3、扩缩容

修改 deployment.yaml 中的 replicas 属性即可

完成后运行 kubectl apply -f xxx.yaml

4、滚动升级

修改 deployment.yaml 中的 imageName 属性等

完成后运行 kubectl apply -f xxx.yaml