我想使用带有https的apache服务器创建一个Web应用程序,并且已经使用letsencrypt生成了证书文件。我已经验证了cert.pemchain.pemfullchain.pemprivkey.pem存储在主机上。但是,我无法将它们映射到 pods 。这是web-controller.yaml文件:

apiVersion: v1
kind: ReplicationController
metadata:
  labels:
    name: web
  name: web-controller
spec:
  replicas: 2
  selector:
    name: web
  template:
    metadata:
      labels:
        name: web
    spec:
      containers:
      - image: <my-wen-app-image>
        command: ['/bin/sh', '-c']
        args: ['sudo a2enmod ssl && service apache2 restart && sudo /usr/sbin/apache2ctl -D FOREGROUND']
        name: web
        ports:
        - containerPort: 80
          name: http-server
        volumeMounts:
          - mountPath: /usr/local/myapp/https
            name: test-volume
            readOnly: false
      volumes:
        - hostPath:
            path: /etc/letsencrypt/live/xxx.xxx.xxx.edu
          name: test-volume

kubectl create -f web-controller.yaml之后,错误日志显示:
AH00526: Syntax error on line 8 of /etc/apache2/sites-enabled/000-default.conf:
SSLCertificateFile: file '/usr/local/myapp/https/cert.pem' does not exist or is empty
Action 'configtest' failed.

这就是为什么我认为问题在于证书未映射到容器中的原因。

有人可以帮我吗?非常感谢!

最佳答案

我想通了:我必须将其安装到/etc/letsencrypt/live/host而不是/usr/local/myapp/https
这可能不是根本原因,但现在有效。

关于apache - Kubernetes:hostPath卷无法挂载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37819488/

10-16 22:41