- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
出于测试目的,我安装了一个 OpenShift 集群,并且由于我在公司网络后面,我需要在任何想要发出外部请求的 Pod 中包含一些根证书。如何在创建 Pod 时自动注入(inject)这些证书?
我在本地 CentOS 7 虚拟机中运行 OpenShift Origin (OKD) 3.11,并在其之上配置了 GlusterFS 存储。我已经遇到了 VM 本身的多个问题,这让我在尝试访问网络时出错:x509: certificate signed by unknown authority
。我通过在/etc/pki/ca-trust/source/anchors 中添加我的公司根证书并运行 update-ca-trust
命令来解决这个问题。
例如,当我在 OpenShift 集群中运行 docker-registry 部署时,由于创建的 Pod 无法访问主机根证书,它们再次提供了 x509: certificate signed by unknown authority
尝试从 docker.io 拉取图像时出错。我通过创建一个包含所有需要的根证书的 ConfigMap 并将它们安装在注册表部署配置的卷中来解决这个问题。
我以为我只需要在所有想要请求外部网络的部署配置中安装一个卷。但后来我提供了一个 Jenkins 实例,我意识到了一些新的东西:当管道运行时,Jenkins 会创建一个带有适配代理的 Pod(例如:Spring Boot 应用程序将需要一个 Maven 代理)。由于我无法控制那些创建的 pod,因此它们无法拥有包含所有根证书的已安装卷。因此,例如,我有一个管道在发布我的应用程序图表之前运行 helm init --client-only
,并且此命令给出了一个 x509: certificate signed by unknown authority
错误,因为这个 pod 没有根证书。
我发现 PodPreset 可能是解决我的问题的完美方法,但是当我在集群中启用此功能并创建 PodPreset 时,没有填充新的 pod。我在 OpenShift documentation 上阅读从 3.7 开始不再支持 PodPresets,所以我认为这可能是它不起作用的原因。
这是我的 PodPreset 定义文件:
kind: PodPreset
apiVersion: settings.k8s.io/v1alpha1
metadata:
name: inject-certs
spec:
selector: {}
volumeMounts:
- mountPath: /etc/ssl/certs/cert1.pem
name: ca
subPath: cert1.pem
- mountPath: /etc/ssl/certs/cert2.pem
name: ca
subPath: cert2.pem
- mountPath: /etc/ssl/certs/cert3.pem
name: ca
subPath: cert3.pem
- mountPath: /etc/ssl/certs/cert4.pem
name: ca
subPath: cert4.pem
- mountPath: /etc/ssl/certs/cert5.pem
name: ca
subPath: cert5.pem
- mountPath: /etc/ssl/certs/cert6.pem
name: ca
subPath: cert6.pem
volumes:
- configMap:
defaultMode: 420
name: ca-pemstore
name: ca
我不知道是否有任何方法可以让 PodPresets 在 OpenShift 3.11 上工作,或者是否有另一种解决方案可以在创建的 Pod 中注入(inject)这样的证书文件。这真的很棒。
最佳答案
GitHub 上的 RedHat COP 包含一个带有 podpresent admission webhook Controller 的项目,您可以使用: https://github.com/redhat-cop/podpreset-webhook
基本上,您部署该项目并将 PodPresent 中的 apiVersion 更改为 apiVersion: redhatcop.redhat.io/v1alpha1
关于ssl - 是否可以在 OpenShift 3.11 (3.7+) 中使用 PodPresets?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57090050/
我是 devops 的新手,并且正在阅读有关此的 openshift 文档。似乎 buildconfig 和 pipeline(openshift 4.6 中的 tekton)都可以实现 source
我正在寻找 OpenShift Origin 和 OpenShift Enterprise 之间的主要区别。我知道第一个是开源的,后者是商业版。与开源版本相比,OpenShift Enterprise
在 Openshift 上部署应用程序后,收集应用程序的 1) CPU、2) 网络、3) 内存、4) 磁盘存储使用情况的推荐方法/最佳实践是什么?基本上是为了监控应用程序。 如果它们能够以时间序列格式
几天来,我一直在尝试通过 Openshift 连接到我的应用程序,但仍然没有运气。 我现在不确定该去哪个论坛,因为我在任何地方都没有得到帮助。 1) 我通过终端运行sudo rhc setup (我之
Spinnaker 是否可以作为云提供商在 Red Hat 的 Openshift 上运行和部署应用程序? 如果没有,需要什么才能使之成为现实? 谢谢。 最佳答案 首先,您需要为 Openshift
我目前正在使用 Red Had 提供的免费培训来学习 Openshift 作为开发人员和管理员。你知道我可以用来获得“刺激”经验的任何其他地方吗?提前致谢。 :) 最佳答案 红帽提供的免费培训是一个良
我在 openshift 中创建应用程序时不小心选择了大齿轮。有没有办法在不重新创建我的应用程序的情况下降级齿轮类型?比如从大到中,甚至从大到小。highcpu。 提前谢谢各位 最佳答案 您确实必须重
我创建了一个 Web 应用程序,我想在 Openshift 上进行部署。 最简单的方法是什么?我正在使用 Openshift Eclipse 客户端。 我应该创建一个新的 openshift,然后从我
我想在 Openshift 中定义一条具有多条路径的路由,每条路径转发到不同的服务。例如/pathA 会将请求转发到 ServiceA ,而/pathB 会将请求转发到 ServiceB。 这在 Op
我想创建一个构建器图像 app_name:latest这将采用多个源输入,例如,另一个图像和二进制源,然后将输出创建到 app_name:latest . 示例 - { "kind": "Bu
我有一个 openshift 应用程序,我在本地彻底重新设计了该应用程序,并希望在 openshift 服务器上重新开始。 我可以删除所有齿轮并重做它们,但是有没有一种优雅的方法或任何方法可以将 op
大约一周以来,它说: Queued for provisioning Due to an increase in OpenShift Online Starter popularity, please
我希望我的部署配置使用作为构建配置输出的镜像。 我目前正在使用这样的东西: - apiVersion: v1 kind: DeploymentConfig metadata: anno
与 OpenShift Container Platform(以前的 Enterprise)相比,OpenShift Origin 是否有任何强制限制?我的意思是,像 Origin 这样的东西,你最多
一个 openshift 应用程序可以有多个域吗? Heroku 允许这样做。完全不同的域(app.abc.com、app.xyz.com)或子域(*.abc.com、*.xyz.com)。 open
我想开发一种新的墨盒供我自己使用。我使用 OpenShift Cartridge Development Kit 开始我的工作。我的构建脚本写在.openshift/action_hooks/buil
我正在使用 flask 。我安装了 Flask-migrate 并一直在使用它来迁移我的 postgresql 数据库。它在我的本地盒子上工作正常。但是,当我在 openshift 上运行它时出现错误
当我尝试在打开的类次项目中推送一些更改时,我在尝试构建项目时遇到了这个错误: remote: Found pom.xml... attempting to build with 'mvn --glob
在不可扩展的奇异齿轮中,齿轮空闲多长时间没有流量。我看过 https://access.redhat.com/site/documentation/en-US/OpenShift_Online/2.0
我试图在 OpenShift 中更新图像时触发部署。该图像托管在私有(private)外部 docker 注册表中。我创建了一个 ImageStream映射到这个外部图像。当我将新图像推送到注册表时,
我是一名优秀的程序员,十分优秀!