我想看看与之前的版本相比,对 helm 图表所做的更改 - 运行时helm list我看到有 xx 修订 - 有什么方法可以看到差异吗?我知道回滚helm rollback <RELEASE> 0,但只是想知道发生了什么变化
作为准备,我会告诉你我所知道的
当我运行时,我将在重新启动之前获取最后 20 行日志以及发生时的时间戳,但我希望在作为附加列kubectl logs --previous <pod_name>运行时显示该时间戳。kubectl get pods
关于如何创建自定义列的 kube 文档表明
kubectl get pods <my_pod_name -o custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion
NAME RSRC
submit-queue 610995
Run Code Online (Sandbox Code Playgroud)
但我的问题是这个元数据/规范存储在哪里???我在哪里可以列出所有可能的元数据,以便我知道要搜索或写入哪一列,对于规范和任何其他可能的列也是如此
我知道我可以使用 来查看 pod kubectl describe pod <pod>,但是如何将其中的字段转换为这种.metadata.name格式?
我的描述的一部分看起来像这样
MacBook-Pro% kubectl describe pod xxx
Name: xxx
Namespace: xx
Priority: 0
Node: myname/myip
Start Time: Tue, 23 Feb 2021 11:37:01 +0100
Labels: app=xx
app.kubernetes.io/instance=xx
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=xx
env=xx
helm.sh/chart=xx
pod-template-hash=yy
Annotations: kubectl.kubernetes.io/restartedAt: 2020-10-23T11:21:09+02:00
Status: Running
IP: 10.xx
IPs:
IP: 10.xx
Controlled By: ReplicaSet/xxx
Containers: …Run Code Online (Sandbox Code Playgroud) 我正在使用 for_each 循环创建 GCP 存储桶,并希望将现有存储桶导入我的 terraform 状态
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# google_storage_bucket.buckets["a-test-test-test"] will be created
+ resource "google_storage_bucket" "buckets" {
+ bucket_policy_only = (known after apply)
+ force_destroy = false
+ id = (known after apply)
+ location = "US"
+ name = "a-test-test-test"
+ project = "xxx"
+ self_link = (known after apply)
+ storage_class = …Run Code Online (Sandbox Code Playgroud) 我最近开始使用 terragrunt 并且一直想知道是否可以从特定分支而不是特定标签(或除了标签)而不是默认的 master 下载模块
从master下载特定标签:
terraform {
source = "git@github.com:<repo>/infrastructure-modules.git//gcp/bucket?ref=v.0.0.1"
}
Run Code Online (Sandbox Code Playgroud)
从存储库下载特定分支?
# Pseudo code
terraform {
source = "git@github.com:<repo>/infrastructure-modules.git//gcp/bucket?ref=v.0.0.1%branch=test"
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将服务帐户放入秘密中 - 一年前我这样做过,它可以工作,但现在 - 无论我如何处理它,应用程序都看不到它,并说存在Input byte array has incorrect ending byte- 创建正常秘密时我知道你必须换一条新线所以
echo -n "secret" | base64
Run Code Online (Sandbox Code Playgroud)
并将该值秘密保存并应用,但我的多行文件
cat secret.json
{
"type": "service_account",
"project_id": "smth-smth",
"private_key_id": "blabla"
...
}
Run Code Online (Sandbox Code Playgroud)
无论我如何处理 - 无论是像第一个示例中那样手动放置,还是用
cat secret.json | base64
# or
base64 < secret.json
Run Code Online (Sandbox Code Playgroud)
秘密已创建,但应用程序抛出
Constructor threw exception; nested exception is java.lang.IllegalArgumentException: Input byte array has incorrect ending byte at 3104
Run Code Online (Sandbox Code Playgroud)
当我将新密钥与服务帐户的最后一个密钥进行比较时,差异在于输出的样子
工作原理是这样的 - 当我尝试解密 Base64 时
echo -n "<long string of base64 encrypred sa> | base64 -D
{ "type": "service_account", …Run Code Online (Sandbox Code Playgroud) 我已经有了自己的微服务,到目前为止,我已经通过 https 将服务以及 helm 图表公开type: NodePort到nginx-ingress我自己的公共 IP;我注意到在我的微服务 helm 图表上运行 linter 时,它不安全(使用 NodePort),我应该使用 ClusterIP - 有人可以解释为什么吗?
使用 helm3 图表在 kubernetes 上查看 10 个微服务,发现它们都具有相似的结构标准、部署、服务、hpa、网络策略等,并且基本上<helm_chart_name>/templates所有目录都 99% 相同,并且if在文件顶部有一些声明,无论我们是否想要部署该资源,
{{ if .Values.hpa.create }}
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: {{ .Values.deployment.name }}
...
spec:
scaleTargetRef:
...
{{ end }}
Run Code Online (Sandbox Code Playgroud)
并在值中传递是/否,无论我们是否想要它 - 是否有一些工具可以轻松地为舵图创建模板?要使用这 5 个清单创建 Helm 图表,该清单预先填充了对上述值的引用?
想知道是否有一些 terraform 测试网站,这些网站并不是真正测试 terraform 资源的输出,而是测试一些变量,例如给定的:一些输入
x = [
{
name = first
condition = {
age = "1"
}
action = {
type = "Delete"
}
},{
name: second
condition = {
age = "2"
}
action = {
type = "Delete"
}
}
]
Run Code Online (Sandbox Code Playgroud)
想要测试如何在在线实时运行时获取第二个变量
类似于 regex.101.com
嘿,我有一个更广泛的问题,因为当我在 kubernetes 中更新秘密时,它们不会在 pod 中实现,除非它们是 ugprades/reschedules 或只是重新部署;我看到了另一篇关于它的 stackoverflow 帖子,但没有一个解决方案适合我更新 kubernetes 的秘密不会更新正在运行的容器环境变量
同样如此,pod 上的 python 脚本的应用程序内解决方案可以自动更新其秘密https://medium.com/analytics-vidhya/updating-secrets-from-a-kubernetes-pod-f3c7df51770d但它似乎是一个远景和我想出了向部署清单添加注释的解决方案 - 并希望每次舵图将新的时间戳放入其中时,它都会重新安排 Pod - 它确实放置了它,但它没有重新安排 - 任何想法如何强制这种行为?
apiVersion: apps/v1
kind: Deployment
metadata:
name: xxx
namespace: xxx
labels: xxx
annotations:
lastUpdate: {{ now }}
Run Code Online (Sandbox Code Playgroud)
我也不想将这个补丁命令添加到 ci/cd 部署中,因为它的仲裁和 - 感觉不是正确的解决方案
kubectl patch deployment mydeployment -p '{"spec":{"template":{"spec":{"containers":[{"name":"mycontainer","env":[{"name":"RESTART_","value":"'$(date +%s)'"}]}]}}}}'
Run Code Online (Sandbox Code Playgroud)
没有其他人找到更好的解决方案来在已更改的机密上重新部署 pod 吗?
搜索后,我发现我可以使用Terraforming Tool来将 AWS 云基础设施导出为 terraform 代码。
如何将我现有的 Google 云基础设施导出到 terraform?GCP 是否有任何类似或本机工具?