Kubernetes:将本地文件夹安装到Pod时出现问题-“ 0/1个节点可用:1个节点具有卷节点亲缘性冲突”

如何解决Kubernetes:将本地文件夹安装到Pod时出现问题-“ 0/1个节点可用:1个节点具有卷节点亲缘性冲突”

我尝试将本地文件夹安装为PersistentVolume并在其中一个pod中使用它,但是似乎该过程存在问题,并且pod保持状态为“待处理”。

以下是我的pv yaml文件:

kind: PersistentVolume
apiVersion: v1
metadata:
  name: pv-web
  labels:
    type: local
spec:
  storageClassName: mlo-web
  capacity:
    storage: 1Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  local:
    path: ${MLO_REPO_DIR}/web/
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - mlo-node

和pvc yaml文件:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-web
  namespace: mlo-dev
  labels:
    type: local
spec:
  storageClassName: mlo-web
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

和部署yaml文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-deployment
  namespace: mlo-dev
  labels:
    app: web
spec:
  replicas: 1
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - name: web
        image: xxxxxx/web:latest
        ports:
          - containerPort: 3000
        volumeMounts:
          - name: webdir
            mountPath: /service
...
      volumes:
        - name: webdir
          persistentVolumeClaim:
            claimName: pvc-web

我发现豆荚始终处于“待处理”状态:

web-deployment-d498c7f57-4cfbg                                0/1     Pending   0          26m

当我使用“ kubectl describe”检查窗格状态时,结果如下:

Name:           web-deployment-d498c7f57-4cfbg
Namespace:      mlo-dev
Priority:       0
Node:           <none>
Labels:         app=web
                pod-template-hash=d498c7f57
Annotations:    <none>
Status:         Pending
IP:             
IPs:            <none>
Controlled By:  ReplicaSet/web-deployment-d498c7f57
Containers:
  web:
    Image:      xxxxxx/web:latest
    Port:       3000/TCP
    Host Port:  0/TCP
    Command:
      npm
      run
      mlo-start
    Environment:
      NODE_ENV:              <set to the key 'NODE_ENV' of config map 'env-config'>              Optional: false
      WEBPACK_DEV_SERVER:    <set to the key 'webpack_dev_server' of config map 'env-config'>    Optional: false
      REDIS_URL_SESSION:     <set to the key 'REDIS_URL' of config map 'env-config'>             Optional: false
      WORKSHOP_ADDRESS:      <set to the key 'WORKSHOP_ADDRESS' of config map 'env-config'>      Optional: false
      USER_API_ADDRESS:      <set to the key 'USER_API_ADDRESS' of config map 'env-config'>      Optional: false
      ENVCUR_API_ADDRESS:    <set to the key 'ENVCUR_API_ADDRESS' of config map 'env-config'>    Optional: false
      WIDGETS_API_ADDRESS:   <set to the key 'WIDGETS_API_ADDRESS' of config map 'env-config'>   Optional: false
      PROGRAM_BULL_URL:      <set to the key 'REDIS_URL' of config map 'env-config'>             Optional: false
      PROGRAM_PUBSUB:        <set to the key 'REDIS_URL' of config map 'env-config'>             Optional: false
      PROGRAM_API_ADDRESS:   <set to the key 'PROGRAM_API_ADDRESS' of config map 'env-config'>   Optional: false
      MARATHON_BULL_URL:     <set to the key 'REDIS_URL' of config map 'env-config'>             Optional: false
      MARATHON_API_ADDRESS:  <set to the key 'MARATHON_API_ADDRESS' of config map 'env-config'>  Optional: false
      GIT_API_ADDRESS:       <set to the key 'GIT_API_ADDRESS' of config map 'env-config'>       Optional: false
      GIT_HTTP_ADDRESS:      <set to the key 'GIT_HTTP_ADDRESS' of config map 'env-config'>      Optional: false
      LOG_URL:               <set to the key 'LOG_URL' of config map 'env-config'>               Optional: false
      LOGGER_PUBSUB:         <set to the key 'REDIS_URL' of config map 'env-config'>             Optional: false
      AUTH0_CLIENT_ID:       <set to the key 'AUTH0_CLIENT_ID' of config map 'env-config'>       Optional: false
      AUTH0_DOMAIN:          <set to the key 'AUTH0_DOMAIN' of config map 'env-config'>          Optional: false
      AUTH0_CALLBACK_URL:    <set to the key 'AUTH0_CALLBACK_URL' of config map 'env-config'>    Optional: false
      AUTH0_LOGOOUT_RETURN:  <set to the key 'AUTH0_LOGOOUT_RETURN' of config map 'env-config'>  Optional: false
      AUTH0_CLIENT_SECRET:   <set to the key 'auth0-client-secret' in secret 'env-secret'>       Optional: false
      SESSION_SECRET:        <set to the key 'session-secret' in secret 'env-secret'>            Optional: false
    Mounts:
      /service from webdir (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-w9v7j (ro)
Conditions:
  Type           Status
  PodScheduled   False 
Volumes:
  webdir:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  pvc-web
    ReadOnly:   false
  default-token-w9v7j:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-w9v7j
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason            Age                From               Message
  ----     ------            ----               ----               -------
  Warning  FailedScheduling  30s (x2 over 30s)  default-scheduler  0/1 nodes are available: 1 node(s) had volume node affinity conflict.

我发现的错误消息是:

  Warning  FailedScheduling  30s (x2 over 30s)  default-scheduler  0/1 nodes are available: 1 node(s) had volume node affinity conflict.

您知道我的问题在哪里吗?非常感谢!

解决方法

您似乎没有一个符合您的亲和力要求的节点。

删除PersistentVolume上的相似性要求:

删除此部分:

  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - mlo-node

并且只能使用(并将local更改为hostPath):

kind: PersistentVolume
apiVersion: v1
metadata:
  name: pv-web
  labels:
    type: local
spec:
  storageClassName: mlo-web
  capacity:
    storage: 1Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: /absolute-path/web/

这类似于Configure a Pod to Use a PersistentVolume for Storage示例,也使用Minikube。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)&gt; insert overwrite table dwd_trade_cart_add_inc &gt; select data.id, &gt; data.user_id, &gt; data.course_id, &gt; date_format(
错误1 hive (edu)&gt; insert into huanhuan values(1,&#39;haoge&#39;); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive&gt; show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 &lt;configuration&gt; &lt;property&gt; &lt;name&gt;yarn.nodemanager.res