八步网站建设,网站推广的步骤,网站开发 播放音频amr,wordpress主题重新激活常用命令
kubectl get pod #查看默认命名空间下所有pod
kubectl describe pod podname #获取默认命名空间下POD详情# 如果要查看制定命名空间则使用 -n nsname
kubectl get pod -n ns
kubectl describe pod podname -n ns# 以YAML格式提供比 kubectl describe pod 更加详细的信…常用命令
kubectl get pod #查看默认命名空间下所有pod
kubectl describe pod podname #获取默认命名空间下POD详情# 如果要查看制定命名空间则使用 -n nsname
kubectl get pod -n ns
kubectl describe pod podname -n ns# 以YAML格式提供比 kubectl describe pod 更加详细的信息即系统拥有的关于 Pod 的所有信息
kubectl get pod podname -o yaml# 查看Pod对应的labels
kubectl get pod --show-labels# deploy 也能用 --show-labels 查看标签
kubectl get deploy --show-labels# 通过labels来筛选对应的Pod
kubectl get pod --show-labels --selectorpod-template-hash748c667d99kubectl logs podname #查看POD日志如果有多个容器时默认查看第一个容器的日志
kubectl logs podname -c containername #使用 -c 查看POD中指定容器的日志
kubectl logs podname containername #也可以省略 -c# 打印容器在Pod中的前一个实例的日志如果它存在的话
# 即如果你的容器之前崩溃过你可以通过此命令访问之前容器的崩溃日志-p 是 --previous的缩写
kubectl logs -p podname containername
kubectl logs --previous podname containername# 在Pod的容器内部执行命令
kubectl exec podname -- cat /var/log/dpkg.log
kubectl exec podname -- ls /var/log/# 在Pod内部使用 -c 指定容器执行命令
# 如果Pod内有多个容器的情况下若是不用 -c 指定容器则会默认在第一个容器里执行也就是配置文件先定义的容器
k exec podname -c containername -- ls /var/log# 连接Pod容器的控制台
kubectl exec -it podname -- sh# 连接Pod指定容器的控制台
k exec nginx -c nginx-container -- ls /var/log# 不执行命令而是生成 yaml 的配置文件重定向到配置文件中
kubectl run nginx --imagenginx --dry-runclient -o yaml nginx.yaml# 完整一些的
kubectl run nginx --imagenginx --restartOnFailure --port80 --envtest_envtest is env --dry-runclient -o json pod05# 列出Pod容器的环境变量
kubectl exec podname -- printenvPod配置文件
apiVersion: v1
kind: Pod
metadata:creationTimestamp: nulllabels:run: nginxname: nginx
spec:containers:- image: nginximagePullPolicy: IfNotPresentname: nginxresources: {}dnsPolicy: ClusterFirstrestartPolicy: Always
status: {}镜像拉取策略
imagePullPolicy有三个取值
Always 每次都下载最新镜像Never 不会尝试获取镜像如果镜像已经以某种方式存在本地kubelet 会尝试启动容器否则会启动失败IfNotPresent 只有当镜像在本地不存在时才会拉取 默认镜像拉取策略
当你或控制器向 API 服务器提交一个新的 Pod 时你的集群会在满足特定条件时设置 imagePullPolicy 字段
如果你省略了 imagePullPolicy 字段并且容器镜像的标签是 :latestimagePullPolicy 会自动设置为 Always 如果你省略了 imagePullPolicy 字段并且没有指定容器镜像的标签imagePullPolicy 会自动设置为 Always 如果你省略了 imagePullPolicy 字段并且为容器镜像指定了非 :latest 的标签imagePullPolicy 就会自动设置为 IfNotPresent
注意事项
1、在生产环境中部署容器时你应该避免使用 :latest 标签因为这使得正在运行的镜像的版本难以追踪并且难以正确地回滚应指定一个有意义的标签如 v1.42.0
2、为了确保 Pod 总是使用相同版本的容器镜像你可以指定镜像的摘要 将 : 替换为 例如imagesha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2 当使用镜像标签时如果镜像仓库修改了代码所对应的镜像标签可能会出现新旧代码混杂在 Pod 中运行的情况。 镜像摘要唯一标识了镜像的特定版本因此 Kubernetes 每次启动具有指定镜像名称和摘要的容器时都会运行相同的代码。 通过摘要指定镜像可固定你运行的代码这样镜像仓库的变化就不会导致版本的混杂
3、容器的 imagePullPolicy 的值总是在对象初次创建时设置的如果后来镜像的标签发生变化则不会更新。例如如果你用一个 非 :latest 的镜像标签创建一个 Deployment 并在随后更新该 Deployment 的镜像标签为 :latest则 imagePullPolicy 字段 不会 变成 Always 你必须手动更改已经创建的资源的拉取策略
容器重启策略
restartPolicy有三个取值
Always 总是重启OnFailure 失败了才重启Never 从不重启
Pod容器的状态
Pending Pod已经建立但是pod里还有容器没有创建完成 Running Pod已经被调度到节点上且容器工作正常 Completed Pod里所有容器正常退出 Succeeded Failed
参考
k8s之Pod详解