YAML配置文件管理资源

配置文件说明:
 定义配置时,指定最新稳定版API(当前为v1);
 配置文件应该存储在集群之外的版本控制仓库中。如果需要,可以快速回滚配置、重新创建和恢复;
 应该使用YAML格式编写配置文件,而不是JSON。尽管这些格式都可以使用,但YAML对用户更加友好;
 可以将相关对象组合成单个文件,通常会更容易管理;
 不要没必要的指定默认值,简单和最小配置减少错误;
 在注释中说明一个对象描述更好维护

pod管理
1)、yaml文件创建Pod对象:cat pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx
spec:
  containers:
    - name: nginx
      image: nginx

2)、基本管理:
# 创建pod资源
kubectl create -f pod.yaml
# 查看pods
kubectl get pods nginx-pod
# 查看pod描述
kubectl describe pod nginx-pod
# 更新资源
kubectl apply -f pod.yaml
# 删除资源
kubectl delete pod nginx-pod
kubectl delete -f nginx-deployment.yaml
kubectl delete -f pod.yaml

3)、资源限制
示例:
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx
spec:
  containers:
    - name: nginx
      image: nginx
      resources:
      requests:
        memory: "64Mi"
        cpu: "250m"
      limits:
        memory: "128Mi"
        cpu: "500m"

4)、调度约束
Pod.spec.nodeName       强制约束Pod调度到指定Node节点上
Pod.spec.nodeSelector   通过lable-selector机制选择节点

示例:
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx
spec:
  nodeSelector:
    env_role: dev
containers:
  - name: nginx
    image: nginx

5)、重启策略
三种重启策略:
Always:当容器停止,总是重启容器,默认策略。
OnFailure:当容器异常退出(退出状态码非0)时,才重启容器。
Never:当容器终止退出,从不重启容器。

示例:
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx
  restartPolicy: OnFailure

6)、健康检查
提供Probe机制,有以下两种类型:
 livenessProbe
如果检查失败,将杀死容器,根据Pod的restartPolicy来操作。
 readinessProbe
如果检查失败,Kubernetes会把Pod从service endpoints中剔除。

Probe支持以下三种检查方法:
 httpGet
发送HTTP请求,返回200-400范围状态码为成功。
 exec
执行Shell命令返回状态码是0为成功。
 tcpSocket
发起TCP Socket建立成功。

示例:
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx
spec:
  containers:
    - name: nginx
      image: nginx
      ports:
      - containerPort: 80
      livenessProbe:
        httpGet:
          path: /index.html
          port: 80

posted @   大川哥  阅读(487)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示