我正在学习docker/k8;我想将一个.pem文件传递/存储到运行在k8s集群上的引导容器中。这个容器使用.pem创建一个k8s秘密(kubectl创建秘密.)其他在k8s上运行的应用程序将通过安装kubernetes的秘密来使用。
我可以想到以下几种选择,
想了解其中哪一种是完成此任务的最佳实践/安全方法。
发布于 2020-09-03 20:00:56
我看过很多种方法,但我建议使用配置映射,这样就可以让pem文件驻留在k8s集群中,而不必在s3中处理加密等问题。此外,如果您将此包含在docker代码中,则可以让devops团队处理维护,而不是应用程序开发人员。
发布于 2021-11-11 16:45:21
(虽然可以说K8S秘密是Config映射的类型)。
我认为更好的方法是像在这里中指定的那样使用K8S秘密(在Config映射上)。
apiVersion: v1
kind: Secret
metadata:
name: secret-tls
type: kubernetes.io/tls
data:
# the data is abbreviated in this example
tls.crt: |
MIIC2DCCAcCgAwIBAgIBATANBgkqh ...
tls.key: |
MIIEpgIBAAKCAQEA7yn3bRHQ5FHMQ ...然后您可以创建一个通过卷访问秘密数据的pod
apiVersion: v1
kind: Pod
metadata:
name: secret-test-pod
spec:
containers:
- name: test-container
image: nginx
volumeMounts:
# name must match the volume name below
- name: secret-volume
mountPath: /etc/secret-dir
# The secret data is exposed to Containers in the Pod through a Volume.
volumes:
- name: secret-volume
secret:
secretName: secret-tls(*)在这个特定的示例中,tls.crt和tls.key将在/etc/secret-dir下创建。
https://stackoverflow.com/questions/63730597
复制相似问题