来源:b站open in new window

  • Q:集群资源有哪些分类?
    • 名称空间级别
      • 工作负载型资源(workload): Pod、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job、CronJob
      • 服务发现及负载均衡型资源(ServiceDiscovery LoadBalance):Service、Ingress
      • 配置与存储型资源:Volume(存储卷)、CSI(容器存储接口,可扩展各种第三方存储卷)
      • 特殊类型的存储卷:ConfigMap(当配置中心来使用的资源类型)、Secret(保存敏感数据)、DownwardAPI(把外部环境中的信息输出给容器)
    • 集群级别:Namespace、Node、Role、ClusterRole、RoleBinding、ClusterRoleBinding
    • 元数据级别:HPA、PodTemplate、LimitRange
  • Q:容器报错后如何处理?
    • kubectl describe pod myapp-pod
    • 若有多个容器需要用-c指定,查看日志
    • kubectl log myapp-pod -c test
  • Q:initContainer模板是什么?
    • initContainers里面会按照顺序依次往下执行
apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container
    image: busybox
    command: ['sh', '-c', 'echo The app is running! && sleep 3600']
  initContainers:
  - name: init-myservice
  image: busybox
  command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
  - name: init-mydb
  image: busybox
  command: ['sh', '-c', 'until nslookup mydb; do echo waiting for mydb; sleep 2; done;']
  • Q:检测探针-就绪检测模板?readinessProbe-httpget
apiVersion: v1
kind: Pod
metadata:
  name: readiness-httpget-pod
  namespace: default
spec:
  containers:
  - name: readiness-httpget-container
  image: wangyanglinux/myapp:v1
  imagePullPolicy: IfNotPresent
  readinessProbe:
    httpGet:
      port: 80
      path: /index1.html
    initialDelaySeconds: 1
    periodSeconds: 3
  • Q:检测探针-存活检测模板?livenessProbe-exec
apiVersion: v1
kind: Pod
metadata:
  name: liveness-exec-pod
  namespace: default
spec:
  containers:
  - name: liveness-exec-container
    image: hub.atguigu.com/library/busybox
    imagePullPolicy: IfNotPresent
    command: ["/bin/sh","-c","touch /tmp/live ; sleep 60; rm -rf /tmp/live; sleep 3600"]
    livenessProbe:
      exec:
        command: ["test","-e","/tmp/live"]
      initialDelaySeconds: 1
      periodSeconds: 3
  • Q:检测探针-存活检测模板?livenessProbe-httpget
apiVersion: v1
kind: Pod
metadata:
  name: liveness-httpget-pod
  namespace: default
spec:
  containers:
  - name: liveness-httpget-container
  image: hub.atguigu.com/library/myapp:v1
  imagePullPolicy: IfNotPresent
  ports:
  - name: http
    containerPort: 80
  livenessProbe:
    httpGet:
      port: http
      path: /index.html
    initialDelaySeconds: 1
    periodSeconds: 3
    timeoutSeconds: 10
  • Q:检测探针-存活检测模板?livenessProbe-tcp
apiVersion: v1
kind: Pod
metadata:
  name: probe-tcp
spec:
  containers:
  - name: nginx
    image: hub.atguigu.com/library/myapp:v1
    livenessProbe:
      initialDelaySeconds: 5
      timeoutSeconds: 1
      tcpSocket:
        port: 80
  • Q:启动、退出动作pod模板
apiVersion: v1
kind: Pod
metadata:
  name: lifecycle-demo
spec:
  containers:
  - name: lifecycle-demo-container
    image: nginx
    lifecycle:
      postStart:
        exec:
          command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
      preStop:
        exec:
          command: ["/bin/sh", "-c", "echo Hello from the poststop handler > /usr/share/message"]
Last Updated:
Contributors: Shiqi Lu