我有一个 k8s cronjob,它由一个 init 容器和一个 pod 容器组成。如果 init 容器失败,主容器中的 Pod 永远不会启动,并无限期地停留在“PodInitializing”中。
如果 init 容器失败,我的目的是让作业失败。
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: job-name
namespace: default
labels:
run: job-name
spec:
schedule: "15 23 * * *"
startingDeadlineSeconds: 60
concurrencyPolicy: "Forbid"
successfulJobsHistoryLimit: 30
failedJobsHistoryLimit: 10
jobTemplate:
spec:
# only try twice
backoffLimit: 2
activeDeadlineSeconds: 60
template:
spec:
initContainers:
- name: init-name
image: init-image:1.0
restartPolicy: Never
containers:
- name: some-name
image: someimage:1.0
restartPolicy: Never
Run Code Online (Sandbox Code Playgroud)
pod 上的 kubectl 卡住会导致:
Name: job-name-1542237120-rgvzl
Namespace: default
Priority: 0 …
Run Code Online (Sandbox Code Playgroud) kubernetes kubernetes-pod kubernetes-cronjob kubernetes-jobs
如何使用kubectl获取没有任何标签的K8S节点?另外,如何获取没有任何标签的 K8S Pod?
kubernetes google-kubernetes-engine kubectl kubernetes-pod azure-aks
我正在使用 mysql Kubernetes statefulset,我将 PV 映射到主机目录(CentOS 8 VM)但得到“pod has unbound直接 PersistentVolumeClaims”
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mysql-container
spec:
serviceName: mysql
replicas: 1
selector:
matchLabels:
app: mysql-container
template:
metadata:
labels:
app: mysql-container
spec:
containers:
- name: mysql-container
image: mysql:dev
imagePullPolicy: "IfNotPresent"
envFrom:
- secretRef:
name: prod-secrets
ports:
- containerPort: 3306
# container (pod) path
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pvc
volumeClaimTemplates:
- metadata:
name: data
spec:
storageClassName: localstorage
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: …
Run Code Online (Sandbox Code Playgroud) 我的意思是 pod 和 PVC 之间是否存在一对一或多对一的关系?我可以将两个或多个 Pod 连接到同一个 PVC(持久卷声明),而不删除或断开先前创建的 Pod 吗?
我的 Kubernetes 集群中的 2 个节点中有多个 pod。(请参见下文)。
有没有办法告诉我哪些是静态 Pod?(也许是某种kubectl
命令?)
谢谢!
controlplane $ k get pods -A -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system coredns-f9fd979d6-h865q 1/1 Running 0 119s 10.244.0.5 node02 <none> <none>
kube-system coredns-f9fd979d6-z4j6f 1/1 Running 0 119s 10.244.1.5 node01 <none> <none>
kube-system etcd-a1b2k7h7 1/1 Running 0 2m9s 172.17.0.79 node02 <none> <none>
kube-system kube-apiserver-g8j4k8o8 1/1 Running 0 2m9s 172.17.0.79 node02 <none> <none>
Run Code Online (Sandbox Code Playgroud) 我目前正在使用以下方法尝试将给定部署中的 Kubernetes Pod 均匀地分布在所有 Kubernetes 节点上:
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
topologyKey: kubernetes.io/hostname
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- api
Run Code Online (Sandbox Code Playgroud)
然而,我注意到topologySpreadConstraints
Kubernetes 最近添加了一个新属性。在 Kubernetes 部署中从使用切换affinity.podAntiAffinity
到使用有什么优势?topologySpreadConstraints
有什么理由要转行吗?该语法会是什么样子来匹配我目前在上面所做的事情?
我想知道如何按特定顺序开始部署。我知道,initContainers
但这对我不起作用。我有一个巨大的平台,有大约 20 个部署和 5 个状态集,每个都有自己的服务、环境变量、卷、水平自动缩放器等。所以不可能(或者我不知道如何)在另一个中定义它们yaml 部署为initContainers
.
是否还有其他选项可以按特定顺序启动部署?
我需要一些关于 k8s 1.14 和在其上运行 gitlab 管道的问题的建议。许多作业都抛出退出代码 137 错误,我发现这意味着容器突然终止。
集群信息:
Kubernetes 版本:1.14 正在使用的云:AWS EKS 节点:C5.4xLarge
深入挖掘后,我发现了以下日志:
**kubelet: I0114 03:37:08.639450** 4721 image_gc_manager.go:300] [imageGCManager]: Disk usage on image filesystem is at 95% which is over the high threshold (85%). Trying to free 3022784921 bytes down to the low threshold (80%).
**kubelet: E0114 03:37:08.653132** 4721 kubelet.go:1282] Image garbage collection failed once. Stats initialization may not have completed yet: failed to garbage collect required amount of images. Wanted to free 3022784921 bytes, but freed 0 …
Run Code Online (Sandbox Code Playgroud) 我使用 kops 作为 kubernetes 部署。
imagepullpolicy
我注意到,每当在部署文件中输入具有相同标签号的图像时,如果未设置为,系统就会采用前一个图像always
有什么方法可以查看 kubernetes 环境中容器的所有缓存图像吗?
假设我test:56
当前有一个部署中运行的映像并且之前test:1
使用test:55
过,那么 kubernetes 是否缓存这些映像?如果是,在哪里可以找到这些?
我最近将 StatefulSet 中的 podManagementPolicy 字段从默认(OrderedReady)更新为 Parallel。
我想知道我是否会遇到任何问题?
cloud kubernetes microservices kubernetes-statefulset kubernetes-pod
kubernetes ×10
kubernetes-pod ×10
kubectl ×2
amazon-eks ×1
azure-aks ×1
cloud ×1
containers ×1
deployment ×1
docker ×1
docker-image ×1
linux ×1