我的项目中有一个文件夹,其中包含 1 个属性文件和 1 个 jar 文件(db-driver)文件。
我需要将这两个文件复制到我的 pod 上的/usr/local/tomcat/lib 目录。我不确定如何在 kubernetes yaml 文件中实现这一点。下面是我的 yaml 文件,我试图在其中使用 configMap 来实现这一点,但 pod 创建失败并出现错误“configmap references non-existent config key: app.properties”
目标 /usr/local/tomcat/lib已经有其他 jar 文件,所以我尝试使用 configMap 不覆盖整个目录,只添加 2 个特定于我的应用程序的文件。

apiVersion: apps/v1 
kind: Deployment 
metadata: 
  name: tomcatdeployment 
  labels: 
    app:  tomcat 
spec: 
  replicas: 1 
  selector: 
    matchLabels: 
      app:  tomcat 
  template: 
    metadata: 
      labels: 
        app:  tomcat 
    spec: 
      containers: 
        - name: tomcat 
          image: tomcat:latest 
          imagePullPolicy: IfNotPresent 
          volumeMounts: 
          - name: appvolume 
            mountPath: /usr/local/data 
          - name: config 
            mountPath: /usr/local/tomcat/lib 
            subPath: ./configuration 
          ports: 
            - name: http 
              containerPort: 8080 
              protocol: TCP 
      volumes: 
        - name: appvolume 
        - name: config 
          configMap: 
            name: config-map 
            items: 
              - key: app.properties 
                path: app.properties 
--- 
apiVersion: v1 
kind: ConfigMap 
metadata: 
  name: config-map 
data: 
  key:  app.properties 
 
当前目录结构...
. 
├── configuration 
│   ├── app.properties 
│   └── mysql-connector-java-5.1.21.jar 
├── deployment.yaml 
└── service.yaml 
 
请分享您对如何实现这一目标的宝贵反馈。
问候。

请您参考如下方法:

请试试这个:

kubectl create configmap config-map --from-file=app.properties --from-file=mysql-connector-java-5.1.21.jar

    apiVersion: apps/v1 
    kind: Deployment 
    metadata: 
      name: tomcatdeployment 
      labels: 
        app:  tomcat 
    spec: 
      replicas: 1 
      selector: 
        matchLabels: 
          app:  tomcat 
      template: 
        metadata: 
          labels: 
            app:  tomcat 
        spec: 
          containers: 
            - name: tomcat 
              image: tomcat:latest 
              imagePullPolicy: IfNotPresent 
              volumeMounts: 
              - name: config 
                mountPath: /usr/local/tomcat/lib/conf 
              ports: 
                - name: http 
                  containerPort: 8080 
                  protocol: TCP 
          volumes: 
            - name: config 
              configMap: 
                name: config-map 

或者
apiVersion: apps/v1 
kind: Deployment 
metadata: 
  name: tomcatdeployment 
  labels: 
    app:  tomcat 
spec: 
  replicas: 1 
  selector: 
    matchLabels: 
      app:  tomcat 
  template: 
    metadata: 
      labels: 
        app:  tomcat 
    spec: 
      containers: 
        - name: tomcat3 
          image: tomcat:latest 
          imagePullPolicy: IfNotPresent 
          volumeMounts: 
          - name: config 
            mountPath: /usr/local/tomcat/lib/app.properties 
            subPath: app.properties 
          - name: config 
            mountPath: /usr/local/tomcat/lib/mysql-connector-java-5.1.21.jar 
            subPath: mysql-connector-java-5.1.21.jar 
          ports: 
            - name: http 
              containerPort: 8080 
              protocol: TCP 
      volumes: 
        - name: config 
          configMap: 
            name: config-map 
            items: 
            - key: app.properties 
              path: app.properties  
            - key: mysql-connector-java-5.1.21.jar 
              path: mysql-connector-java-5.1.21.jar 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!