我想覆盖生产和开发部署之间的值。
默认值如下所示:
apps:
myapp:
replicaCount: 2
containers:
- name: foo
env:
MODE: "dev"
Run Code Online (Sandbox Code Playgroud)
我可以在命令行中使用以下命令覆盖它:
--set apps.myapp.containers[0].env.mode="prod"
Run Code Online (Sandbox Code Playgroud)
不过,我想将所有覆盖保留在一个文件中,并运行 helm update 并传入覆盖文件。在文件中添加覆盖,例如:
apps:
myapp:
containers[0]:
env:
MODE: "prod"
Run Code Online (Sandbox Code Playgroud)
不起作用。如何覆盖列表中的值?
我想在构建 docker 映像并使用如下命令时在 C 盘中创建一个文件
RUN mkdir "C:\Program Files\Microsoft Passport RPS"
Run Code Online (Sandbox Code Playgroud)
但它会抛出错误:
Step 6/6 : RUN mkdir "C:\Program Files\Microsoft Passport RPS"
---> Running in ab58c6f2948d
[91mmkdir : A positional parameter cannot be found that accepts argument 'Files\Microsoft'.
At line:1 char:76
+ ... e = 'SilentlyContinue'; mkdir C:\Program Files\Microsoft Passport RPS
[0m[91m+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[0m[91m + CategoryInfo : InvalidArgument: (:) [mkdir], ParentContainsErro
[0m[91m rRecordException
+ FullyQualifiedErrorId : PositionalParameterNotFound,mkdir
Run Code Online (Sandbox Code Playgroud)
尝试使用正斜杠和反斜杠来执行上述命令。
我尝试了多个其他命令,如下所示:
ENV PATH_WITH_SPACE "C:/Program Files/Microsoft Passport RPS"
RUN mkdir $[PATH_WITH_SPACE]
RUN mkdir ["C:\Program …
Run Code Online (Sandbox Code Playgroud) 我想从 gitlab-ci.yml 执行外部(在本地计算机上)bash 脚本,该脚本使用 docker:stable 映像。我想执行位于 gitlab docker 映像外部的startup.sh。这是可能的还是有更好的选择?
gitlab-ci.yaml
image: docker:stable
#Build script
variables:
CI_DEBUG_TRACE: "true"
DOCKER_DRIVER: overlay
before_script:
- docker --version
build:
services:
- docker:dind
script:
- docker build --no-cache -t <tag> .
- docker login -u root -p <pass> <registry>
- docker tag ...
- docker push ...
- echo "build completed"
stage: build
tags:
- <tag>
deploy_staging:
stage: deploy
script:
- ./sh startup.sh
Run Code Online (Sandbox Code Playgroud)
bash脚本
#!/bin/bash
docker login -u root -p <pass>
docker pull <image>
docker-compose up …
Run Code Online (Sandbox Code Playgroud) 我正在使用 Statefulset,并且启动了多个 Pod,但它们不是彼此的复制品。我想设置 pod 的主机名,并将这些主机名作为环境变量传递给所有 pod,以便它们可以相互通信。
我尝试在 pod 规范下使用主机名,但主机名永远不会设置为指定的主机名。但是,它的主机名设置为 podname-0。
# Source: testrep/templates/statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: orbiting-butterfly-testrep
labels:
app.kubernetes.io/name: testrep
helm.sh/chart: testrep-0.1.0
app.kubernetes.io/instance: orbiting-butterfly
app.kubernetes.io/managed-by: Tiller
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: testrep
app.kubernetes.io/instance: orbiting-butterfly
strategy:
type: Recreate
template:
metadata:
labels:
app.kubernetes.io/name: testrep
app.kubernetes.io/instance: orbiting-butterfly
spec:
nodeSelector:
testol: ad3
hostname: test1
containers:
- name: testrep
image: "test/database:v1"
imagePullPolicy: IfNotPresent
env:
- name: DB_HOSTS
value: test1,test2,test3
Run Code Online (Sandbox Code Playgroud) 我正在将 Ansible 与 Molecule 结合使用。我刚刚遇到了我的角色融合失败的情况:
fatal: [instance]: FAILED! => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result"}
Run Code Online (Sandbox Code Playgroud)
如何缓解?稍等一下,我来回答...
如何在使用命令行设置values.helm install 时将参数键值保存到values.yaml 文件中。--name test --set image.tag=2020 --set image.version=20 如何将此image.tag和image.version值更新为values.yaml?试运行会给出结果,但不会更新values.yaml
我想将我的 Pod 部署在特定的命名空间中。我考虑了 Pod Affinity,但找不到如何选择特定命名空间的解决方案。有人做吗?
我有一个“YAML”文件。我想在渲染其中的 go-template 变量之前验证它。例如:
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
data:
myvalue: "Hello World"
drink: {{ .Values.favorite.drink | default "tea" | quote }}
food: {{ .Values.favorite.food | upper | quote }}
Run Code Online (Sandbox Code Playgroud)
典型的 YAML 解析器在这里不起作用,因为它将解析{
为映射的开头。
err := yaml.Unmarshal(data, &Content)
// Failed to parse the provided YAML: yaml: line 4: did not find expected key
Run Code Online (Sandbox Code Playgroud)
我想知道是否有任何软件包可以帮助我做到这一点?我在网上搜索了一段时间但没有运气。谢谢你的帮助!
我的团队有一个特殊要求,即每隔 X 小时删除所有 pod 日志。这是因为日志包含一些敏感信息 - 我们使用 Fluentbit 读取并处理它们,但问题是之后日志仍然存在。我找不到任何正常的方法来按时间轮换它们,只有关于按文件大小轮换的 docker 守护进程日志记录驱动程序的建议。是否可以创建一个 k8s cronjob 来为每个 pod/容器执行“echo ''> /path/to/logfile”之类的操作?如果是,怎么办?
如果有任何帮助,我将不胜感激。谢谢!
我正在尝试在 kubernetes 提供的 labs.play-with-k8s 免费实例中复制并粘贴一些命令。Ctrl+c 和 Ctrl+v 这两个命令都不起作用。
我发现很少有像 ctrl + shift +insert 这样的选项来复制,但这似乎也不适合我。
任何建议请。
kubernetes ×5
docker ×2
go-templates ×2
ansible-2.x ×1
dockerfile ×1
gitlab ×1
go ×1
logrotate ×1
molecule ×1
yaml ×1