- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经被这个错误搞了几个小时了,但仍然不知道为什么!
我创建了一个简单的 Configmap 和一个分别名为 config1 和 secret1 的 Secret。
(这些的 Yaml 文件在这个 repo 中: https://github.com/hoangphanthai/test )
之后我创建了一个 Go 文件(上面的 test.go)来创建一个 Statefulset 和一个部署。我希望所有 pod(由 Statefulset 和 Deployment 创建)在它们的 Env 变量中引用这些 Configmap 和 Secret。
除了名称之外,Statefulset 和 Deployment 的元数据和规范是相同的。
但是,只有 Statefulset 成功创建,但部署成功。错误是“Deployment.apps“d1”无效:spec.template.spec.containers[0].envFrom:无效值:“”:一次不能指定多个字段”
第二次运行,Statefulset 和 Deployment 都没有成功,它显示“无法继续 - 运行时错误:无效的内存地址或 nil 指针取消引用 [信号 SIGSEGV:分段违规]
无法将 EXC_BAD_ACCESS 信号传播到目标进程和 panic (请参阅 https://github.com/go-delve/delve/issues/852 )
最后一个已知的即时堆栈跟踪(goroutine id 1):""
重要的一段代码如下(完整代码位于 Repo 的 test.go 文件中):
deployment := &appsv1.Deployment{
ObjectMeta: metav1.ObjectMeta{
Name: "d1",
},
Spec: appsv1.DeploymentSpec{
Replicas: &repNo,
Selector: &metav1.LabelSelector{
MatchLabels: map[string]string{
"app": "postgres",
},
},
Template: apiv1.PodTemplateSpec{
ObjectMeta: metav1.ObjectMeta{
Labels: map[string]string{
"app": "postgres",
},
},
Spec: apiv1.PodSpec{
Containers: containerList,
},
},
},
}
statefulset := &appsv1.StatefulSet{
ObjectMeta: metav1.ObjectMeta{
Name: "s1",
},
Spec: appsv1.StatefulSetSpec{
Replicas: &repNo,
Selector: &metav1.LabelSelector{
MatchLabels: map[string]string{
"app": "postgres",
},
},
Template: apiv1.PodTemplateSpec{
ObjectMeta: metav1.ObjectMeta{
Labels: map[string]string{
"app": "postgres",
},
},
Spec: apiv1.PodSpec{
Containers: containerList,
},
},
},
}
起初我认为不可能同时设置 ConfigMapRef 和 SecretRef,但后来我尝试通过 yaml(上面的 dep.yaml)应用部署,这与代码中的完全相同,但它有效。
最佳答案
基于此错误:
Deployment.apps "d1" is invalid:spec.template.spec.containers[0].envFrom: Invalid value: "": may nothave more than one field specified at a time"
EnvFrom: []apiv1.EnvFromSource{
apiv1.EnvFromSource {
ConfigMapRef: &apiv1.ConfigMapEnvSource{
LocalObjectReference: apiv1.LocalObjectReference{
Name: configMapName,
},
},
},
apiv1.EnvFromSource {
SecretRef: &apiv1.SecretEnvSource{
LocalObjectReference: apiv1.LocalObjectReference{
Name: secretName,
},
},
},
}
关于configmap - 在 Golang K8s 客户端中设置 ConfigMapRef 和 SecretRef 以进行部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66023680/
我正在应用一个 Kubernetes CronJob。到目前为止它有效。现在我想添加环境变量。 (环境:-name ...见下文)尝试申请时出现错误 unknown field "configMapR
我已经被这个错误搞了几个小时了,但仍然不知道为什么! 我创建了一个简单的 Configmap 和一个分别名为 config1 和 secret1 的 Secret。 (这些的 Yaml 文件在这个 r
我将 kustomize 用作独立的二进制文件(与 Homebrew 一起安装)并具有以下 base/kustomization.yaml 文件: apiVersion: kustomize.conf
我是一名优秀的程序员,十分优秀!