k8s使用

-
2024-07-07

资源清单

apiVersion

# 指定API的版本号
apiVersion: v1

 kind

# 指定资源的类型
kind: Pod
#其它资源:
Service、Deployment、DaemonSet、StatefulSet、Job、ConfigMap、Secret 

metadata:

metadata:
  name: my-pod  # 必需的字段,指定资源的名称
  namespace: my-namespace  # 可选字段,指定资源所属的命名空间
  labels:  # 可选字段,用于为资源定义标签
    app: nginx  # 示例标签,标识应用程序类型为 nginx
    environment: production  # 示例标签,指示运行环境为生产环境
  annotations:  # 可选字段,提供额外的描述性信息
    description: "This pod runs the frontend application."  # 示例注释,描述该 Pod 运行前端应用程序

spec

用户期望资源的运行状态。

spec:
  containers:  # 容器定义
    - name: nginx  # 容器名称
      image: nginx:1.23.4-alpine  # 容器镜像
      ports:  # 容器端口定义
        - containerPort: 80  # 容器监听端口
          protocol: TCP  # 端口协议
      volumeMounts:  # 挂载卷配置
        - name: webpage  # 挂载的卷名称,需与 volumes 中的名称对应
          mountPath: /usr/share/nginx/html  # 挂载路径
  volumes:  # 卷定义
    - name: webpage  # 卷名称
      emptyDir: {}  # 空目录卷类型,用于临时数据存储
  hostNetwork: true  # 使用宿主机网络
  nodeName: k8s1  # 节点名称,指定 Pod 调度的节点
  restartPolicy: Always  # 容器重启策略,始终重启



相关字段说明

	相关字段说明:
		NAME
			代表的是资源的名称。
		READY   
			代表资源是否就绪。比如 0/1 ,表示一个Pod内有一个容器,而且这个容器还未运行成功。
		STATUS    
			代表容器的运行状态。
		RESTARTS   
			代表Pod重启次数,即容器被创建的次数。
		AGE     
			代表Pod资源运行的时间。
		IP            
			代表Pod的IP地址。
		NODE
			代表Pod被调度到哪个节点。
		其他:	
			"NOMINATED NODE和"READINESS GATES"暂时先忽略哈。

    - 故障排查相关命令

kubectl descpribe
kubectl logs
kubectl cp
kubectl exec #pod中多个容器默认连接到第一个容器,-c参数指定容器

    - 查看帮助信息

kubectl explain

    早期版本中,可能没有提示Pod容器的名称,可以采用以下三种方式查看容器名称。

# kubectl describe pod <pod_name>
# kubectl get pods <pod_name> -o yaml

Q2: 如果查看一个Pod最近20分钟的日志?

 kubectl logs -c nginx -f  --timestamps --since=20m <pod_name>

-c:
    指定要查看的容器名称。

-f:
    实时查看日志。

--timestamps :
    显示时间戳相关信息。
--since=20m 
    查看最近20分钟内的日志。

 

 


目录