- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正尝试按照此处 (https://kubernetes.io/blog/2018/04/13/local-persistent-volumes-beta/) 的概述设置本地存储。我收到以下错误,调度程序无法安排 pod。本地存储映射到工作节点之一。我尝试在主节点上设置本地存储,但出现了同样的错误。我哪里出错了?
警告 FailedScheduling 24s(x2 超过 24s)默认调度程序 0/3 节点可用:1 个节点与节点选择器不匹配,2 个节点未找到可用的持久卷来绑定(bind)。
-------------------------------------------------------------------
kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
rpi-k8-workernode-2 Ready <none> 92d v1.15.0 192.168.100.50 <none> Raspbian GNU/Linux 9 (stretch) 4.19.42-v7+ docker://18.9.0
rpi-mon-k8-worker Ready <none> 91d v1.15.0 192.168.100.22 <none> Raspbian GNU/Linux 9 (stretch) 4.19.42-v7+ docker://18.9.0
udubuntu Ready master 92d v1.15.1 192.168.100.24 <none> Ubuntu 18.04.3 LTS 4.15.0-55-generic docker://19.3.4
-------------------------------------------------------------------
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
------------------------------------------------------------------------
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-ghost
namespace: ghost
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /mnt/mydrive/ghost-data/
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- rpi-mon-k8-worker
------------------------------------------------------------------------
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-ghost
namespace: ghost
labels:
pv: pv-ghost
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: local-storage
selector:
matchLabels:
name: pv-ghost
------------------------------------------------------------------------
apiVersion: apps/v1
kind: Deployment
metadata:
name:
deployment-ghost
namespace: ghost
labels:
env: prod
app: ghost-app
spec:
template:
metadata:
name: ghost-app-pod
labels:
app: ghost-app
env: production
spec:
containers:
- name: ghost
image: arm32v7/ghost
imagePullPolicy: IfNotPresent
volumeMounts:
- mountPath: /var/lib/ghost/content
name: ghost-blog-data
securityContext:
privileged: True
volumes:
- name: ghost-blog-data
persistentVolumeClaim:
claimName: pvc-ghost
nodeSelector:
beta.kubernetes.io/arch: arm
replicas: 2
selector:
matchLabels:
app: ghost-app
kubectl get nodes --show-labels
NAME STATUS ROLES AGE VERSION LABELS
rpi-k8-workernode-2 Ready <none> 93d v1.15.0 beta.kubernetes.io/arch=arm,beta.kubernetes.io/os=linux,kubernetes.io/arch=arm,kubernetes.io/hostname=rpi-k8-workernode-2,kubernetes.io/os=linux
rpi-mon-k8-worker Ready <none> 93d v1.15.0 beta.kubernetes.io/arch=arm,beta.kubernetes.io/os=linux,kubernetes.io/arch=arm,kubernetes.io/hostname=rpi-mon-k8-worker,kubernetes.io/os=linux
udubuntu Ready master 93d v1.15.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=udubuntu,kubernetes.io/os=linux,node-role.kubernetes.io/master=
-----------------------------------------------------------
ud@udubuntu:~/kube-files$ kubectl describe pvc pvc-ghost -n ghost
Name: pvc-ghost
Namespace: ghost
StorageClass: manual
Status: Pending
Volume:
Labels: pv=pv-ghost
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{},"labels":{"pv":"pv-ghost"},"name":"pvc-ghost","namespace":"...
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Filesystem
Mounted By: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal WaitForFirstConsumer 6s (x2 over 21s) persistentvolume-controller waiting for first consumer to be created before binding
最佳答案
正如您从警告中看到的那样 1 node(s) didn't match node selector, 2 node(s) didn't find available persistent volumes to bind.
,您设置了一个 nodeSelector
在 deployment-ghost 中,因此您的工作节点之一与此选择器不匹配。如果您从该 .yaml 文件中删除 nodeSelector
字段。通过这种方式,pod 将部署到创建 PV
的节点。 AFAIK,不可能将 pod 部署到 PV
曾经声称位于另一个工作节点中的工作节点。最后,在其他节点中,没有创建任何 PV
。您可以通过以下方式检查创建的 PV
和 PVC
:
kubectl get pv
kubectl get pvc -n <namespace>
并通过以下方式检查它们的详细信息:
kubectl describe pv <pv_name>
kubectl describe pv <pv_name> -n <namespace>
您的问题在 her 中的官方文档中进行了解释上面写着:
Claims can specify a label selector to further filter the set of volumes. Only the volumes whose labels match the selector can be bound to the claim. The selector can consist of two fields:
1- matchLabels - the volume must have a label with this value
2- matchExpressions - a list of requirements made by specifying key, list of values, and operator that relates the key and values. Valid operators include In, NotIn, Exists, and DoesNotExist
因此,编辑 PersistentVolume 文件并添加如下所示的标签字段:
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-ghost
labels:
name: pv-ghost
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /mnt/mydrive/ghost-data/
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- rpi-mon-k8-worker
没有必要将 namespace 字段添加到 kind: persistantVolume
因为 PersistentVolumes
绑定(bind)是排他的,并且 PersistentVolumeClaims
是命名空间对象。
我对其进行了测试,它对我有用。
关于库伯内斯 : node(s) didn't find available persistent volumes to bind,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58671234/
在 Spring-MVC 应用程序中,我尝试使用 validator 。我将注释 @NotEmpty 和 @Email 放在我的实体之一上,当我尝试验证它时,出现此错误: java.lang.NoSu
网络是我硕士学位的最后一门类(class)。我确实有一个关于如何计算非持久、持久和持久流水线的 http 往返时间的问题。 在花了无数小时阅读有关该问题、从其他大学下载笔记甚至搜索 youtube 视
让我们考虑典型的 订购 和 订单商品 例子。假设 订单商品 是 的一部分订购 聚合,只能通过订单添加。所以,添加一个新的 订单商品 到 订购,我们必须通过 Repository 加载整个 Aggreg
// lookup existing user & set a currently null child entity (ContactInfo) user.setContactInfo(contac
我正在尝试关注 this tutorial .我想我不是从使用可下载项目开始,而是从我之前做过的一个简单的“spring MVC - Maven - eclipse”项目开始。这个项目运行良好。 因此
我正在使用打开 Kubernetes 选项的 docker 应用程序运行 mac OSX Catalina。我使用以下 yaml 和命令创建了一个 PersistentVolume。 apiVersi
假设我有一个类 Employee和一个类Company其中包含 Employee 的 LinkedList对象,我想编写一个添加 Employee 的方法到特定的数据库Company 。我创建了一个新
我实际上正在将我们应用程序的所有组件更新到最新版本。因此,除其他外,我将从 eclipselink-2.5.0 升级到 eclipselink-2.7.3,并从 Tomcat 7 升级到 TomEE。
我试图遵循《用GlassFish 3开始Java EE 6平台》一书第2章中的示例。我正在Windows中使用cmd中的EclipseLink,Derby和Maven。我真的不知道这一点,将不胜感激!
我只是看看ClassGuard (虽然我知道一些 objection )。 但是我得到了 javax.persistence.PersistenceException: [PersistenceUni
我的印象是,如果我们使用持久字段,就不需要 getter 方法,因为实体管理器直接引用实例变量。但是,当我从实体中删除 getter 和 setter 方法以具有持久字段时,未从数据库中检索到相应实例
我正在 Eclipse 中使用 Servlet、JPA、EJB 和 JBoss 进行项目。正如您在我的主题标题中看到的,我的 persistence.xml 文件有错误,但我不知道是哪个:
我已经尝试了一个星期或更长时间来让我的状态在 react native Android 应用程序中持续存在,但在重新水化后状态始终具有初始值。如果我使用 Redux devtools 检查 ASync
什么时候应该坚持,什么时候应该补充水分?命名约定非常困惑,因为作者几乎没有提到它们在 redux-persist 的上下文中的含义。 . 最佳答案 在不真正了解图书馆的情况下: persist = 将
我正在尝试按照老师文档中提供的信息设置一个简单的 jpa 2.0 项目。我已经处理这个问题好几个小时了,但无论我做什么,当我尝试创建 EntityManagerFactory 时,我总是遇到这个异常:
我有一个 Maven 项目,我将其转换为现在可与 Maven 一起使用的 JPA 项目。我的persistence.xml如下: My Persistence Unit
我正在使用 Netbeans 6.8 并构建简单的 Maven Web 应用程序项目。 为持久实体创建实体和主文件 [也创建持久单元] 并使用 EclipsLink。 但是当我运行主文件时出现这个错误
我是 Kubernetes 的新手,我很难理解 Kubernetes 中持久存储背后的整个想法。 这就足够了吗,或者我必须创建持久卷,如果我只部署这两个对象而不创建 PV 会发生什么情况? 存储应该在
我正在尝试使用 JPA 为我目前参与的 Java-EE 项目设置持久性,并且我遇到了许多配置问题。目前,我已经在 persistence.xml 中定义了一个 RESOURCE_LOCAL 持久性单元
Akka 持久性查询通过提供一个通用的基于异步流的查询接口(interface)来补充 Persistence,各种日志插件可以实现该接口(interface)以公开它们的查询功能。 这是来自 akk
我是一名优秀的程序员,十分优秀!