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

推荐订阅源

A
About on SuperTechFans
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
I
InfoQ
C
Check Point Blog
IT之家
IT之家
MyScale Blog
MyScale Blog
Apple Machine Learning Research
Apple Machine Learning Research
Vercel News
Vercel News
Last Week in AI
Last Week in AI
GbyAI
GbyAI
P
Proofpoint News Feed
量子位
Stack Overflow Blog
Stack Overflow Blog
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
B
Blog
T
The Blog of Author Tim Ferriss
H
Help Net Security
云风的 BLOG
云风的 BLOG

k8s入门系列 on 打工人日志

k8s RKE2 cilium L2 + envoy gateway 安装配置 k8s RKE2 vSphere 存储配置 Kubernetes — skywalking + banyanDB APM监控部署 Kubernetes — promtail + loki + grafana 日志系统部署 Kubernetes — metalLB + Traefik 部署 Kubernetes — SSL 证书自动更新 Kubernetes — RKE2 + kube-vip + cilium 部署 metallb + ingress-nginx + argocd 本地部署 Kubernetes — k8s 手动安装 1.17.9 Argo cd 安装和部署 Kubernetes — kubecost 分析 Kubernetes 成本 Ansible部署ceph集群 Kubernetes — 更新证书 Kubernetes — Rook云存储介绍和部署 Kubernetes — 基于K8S搭建Ceph分布式存储 Kubernetes — 探针和生命周期 Kubernetes — 开放标准(OCI、CRI、CNI、CSI、SMI、CPI)概述 kubernetes 部署插件 (Flannel、Web UI、CoreDNS、Ingress Controller) kubernetes 存储 kubernetes 从1.23.x 升级到 1.24.x kubernetes manual expansion kubernetes 调度过程 k8s本地联调神器kt-connect OpenELB:让k8s私有环境对外暴露端口 kubernetes ansible自动化部署 kubernetes 脚本快速安装 kubernetes面试题汇总 Kubernetes 安装 Harbor 搭建 Kubernetes 实验手册(1)
编写 kubernetes 资源描述文件
2022-06-27 · via k8s入门系列 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