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

原文地址:https://www.cnblogs.com/litzhiai/p/12102747.html