如果pod包含多个container, 这些container不会跨机器分布
每个container只运行一个进程,而不是在一个container运行多个进程,这样更容易处理进程异常重启,进程日志等问题
pod可以和现实中的物理机类比,pod中的进程可以和运行在物理机中的进程类比,只是其封装在容器中,可以把pod看做只运行单一应用的服务器
kubectl explain pods, kubectl explain pods.spec,
kubectl describe pod <pod_name> # pod创建失败后,可以通过这种方式查看失败原因
kubectl logs <pod_name> # 获取日志, 日志默认按天轮滚,大小超过10M也会轮滚
kubectl logs <pod_name> -c <container_name>
kubectl get pods -w # 一直显示pod状态
kubectl port-forward kubia-manual 8888:8080
kubectl get pods --show-labels
kubectl get po -l <label_name>
yaml文件resource
apiVersion: v1
kind: Pod
metadata:
name: kuberbetes-test-7
namespace: test
spec:
containers:
- args: # 覆盖dockfile里面的CMD
- sleep 1
command: # 覆盖dockfile里面的ENTRYPOINT
- /bin/sh
- -c
image: ubuntu:16.04
imagePullPolicy: IfNotPresent
name: base
resources:
limits: # pod最多可以获得的资源,必须比requests大,如果申请更多,则被限制
memory: 1024Mi
cpu: 500m
requests: # pod申请时需要保证的资源,不能比这个小
memory: 512Mi
cpu: 500m
securityContext:
capabilities:
add:
- SYS_ADMIN
privileged: true
volumeMounts:
- mountPath: /etc/s3fs
name: mntdatas3fs
readOnly: true
restartPolicy: Never
volumes:
- name: mntdatas3fs
secret: # secret 卷
defaultMode: 256
secretName: s3fs-secret
# secret 定义
apiVersion: v1
kind: Secret
metadata:
name: s3fs-secret
namespace: test
type: Opaque
stringData:
passwd-s3fs: |-
key:value