小编OhH*_*ark的帖子

有没有Python API来收集kubernetes VPA数据

我已将集群上的 VPA 启用为只读模式,并尝试收集 VPA 推荐数据。但我找不到特定于 Vertical Pod Autoscaling 的良好文档或任何 API 详细信息。我已经为 Horizo​​ntal Pod Autoscaler 找到了它,但没有为 VPA 找到了它。

python kubernetes

5
推荐指数
1
解决办法
427
查看次数

Kubernetes 活跃度探测失败是自愿中断还是非自愿中断?

我有一个部署到 Kubernetes 的应用程序,该应用程序依赖于外部应用程序。有时,这两者之间的连接会进入无效状态,只能通过重新启动我的应用程序来修复。

为了自动重新启动,我配置了一个活动探针来验证连接。

这一直工作得很好,但是,我担心如果外部应用程序出现故障(这样连接错误不仅仅是由于无效的 Pod 状态),我的所有 Pod 将立即重新启动,并且我的应用程序将变成完全不可用。我希望它保持运行,以便不依赖于不良服务的功能可以继续。

我想知道 Pod 中断预算是否会阻止这种情况,因为它限制了由于“自愿”中断而减少的 Pod 数量。然而,K8s 文档没有说明活性探测失败是否是自愿中断。他们是吗?

kubernetes livenessprobe

5
推荐指数
1
解决办法
1180
查看次数

kubernetes 如何将 pod 暴露给集群机器之外的东西?

我阅读了以下kubernetes 文档,这些文档导致以下 yaml 在集群中运行 postgresql 和 pgadmin:

--- pgadmin-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: pgadmin-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: pgadmin-pod
  template:
    metadata:
      labels:
        app: pgadmin-pod
    spec:
      containers:
        - name: pgadmin-container
          image: dpage/pgadmin4
          imagePullPolicy: "IfNotPresent"
          ports:
            - containerPort: 80
          env:
            - name: PGADMIN_DEFAULT_EMAIL
              value: email@example.com
            - name: PGADMIN_DEFAULT_PASSWORD
              value: password

--- pgadmin-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: pgadmin-service
spec:
  type: NodePort
  ports:
    - port: 30000
      targetPort: 80
  selector:
    app: pgadmin-pod

--- postgres-deployment.yaml
apiVersion: apps/v1
kind: …
Run Code Online (Sandbox Code Playgroud)

postgresql networking pgadmin kubernetes

5
推荐指数
1
解决办法
1864
查看次数

Kubernetes 公开应用程序 - AWX Operator

希望你一切都好,

我目前正在尝试推出awx-operator部署到 Kubernetes 集群上,但在从集群外部访问该服务时遇到了一些问题。

目前我设置了以下服务:

NAME                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)             AGE
awx                    NodePort    10.102.30.6      <none>        8080:32155/TCP      110m
awx-operator           NodePort    10.110.147.152   <none>        80:31867/TCP        125m
awx-operator-metrics   ClusterIP   10.105.190.155   <none>        8383/TCP,8686/TCP   3h17m
awx-postgres           ClusterIP   None             <none>        5432/TCP            3h16m
awx-service            ClusterIP   10.102.86.14     <none>        80/TCP              121m
kubernetes             ClusterIP   10.96.0.1        <none>        443/TCP             17h
Run Code Online (Sandbox Code Playgroud)

我确实设置了一个NodePort名为awx-operator. 我确实尝试创建应用程序的入口。您可以在下面看到:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: awx-ingress
spec:
  rules:
  - host: awx.mycompany.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: awx
            port:
              number: …
Run Code Online (Sandbox Code Playgroud)

ansible ansible-awx kubernetes

5
推荐指数
1
解决办法
4498
查看次数

如何将 BigQuery 数据提取到 springboot 应用程序中?

我有一个用例,其中我需要从 GCP BigQuery 数据库获取数据到我的 Springboot 应用程序中,然后对其执行一些操作。我无法理解如何去做。例如,需要如何配置应用程序属性才能使用 BQ 数据库等,我也无法找到任何好的资源。

请大家在这方面给我一些指导。即使您能给我指出相关资源,那就太好了!

spring-data-jpa google-bigquery spring-boot

5
推荐指数
1
解决办法
7847
查看次数

Nginx Ingress 控制器 - 获取 IngressClass nginx 时出错

v1.22.1在裸机 CentOS 中设置了一个 Kubernetes 集群。我在按照此链接设置 Nginx Ingress 控制器时遇到问题。

我按照步骤 1-3 进行了完全相同的操作,但CrashLoopBackOff在 nginx 入口控制器 pod 中出现错误。我检查了 pod 的日志,发现如下:

[root@dev1 deployments]# kubectl logs -n nginx-ingress nginx-ingress-5cd5c7549d-hw6l7
I0910 23:15:20.729196       1 main.go:271] Starting NGINX Ingress controller Version=1.12.1 GitCommit=6f72db6030daa9afd567fd7faf9d5fffac9c7c8f Date=2021-09-08T13:39:53Z PlusFlag=false
W0910 23:15:20.770569       1 main.go:310] The '-use-ingress-class-only' flag will be deprecated and has no effect on versions of kubernetes >= 1.18.0. Processing ONLY resources that have the 'ingressClassName' field in Ingress equal to the class.
F0910 23:15:20.774788       1 main.go:314] …
Run Code Online (Sandbox Code Playgroud)

nginx kubernetes kubernetes-ingress nginx-ingress

5
推荐指数
1
解决办法
5961
查看次数

检查哪个部署(如果有)正在使用机密

我正在替换 Kubernetes 秘密,我想确保捕获集群中使用它的所有位置。

有没有一种方法可以在不阅读所有使用 K8s 或 helm 的部署 YAML 的情况下进行判断?

我们在同一个集群上部署了多个服务并共享秘密。有些使用 Helm,有些则不使用。

kubernetes kubernetes-helm kubernetes-secrets

5
推荐指数
1
解决办法
2593
查看次数

“Pod 节点有条件:[DiskPressure]”和“节点资源不足:临时存储”之间有什么区别

当 Pod 因磁盘问题被 Evicted 时,我发现有两个原因:

  1. 该节点有条件:[DiskPressure]
  2. 该节点资源不足:临时存储。容器 NAME 正在使用 16658224Ki,这超出了其请求的 0。

我找到了的节点条件DiskPressure

有什么不同?

kubernetes

5
推荐指数
1
解决办法
5472
查看次数

有没有办法检测对 Helm Chart 部署的资源所做的更改

我们部署了多个资源作为 helm (v3) 图表的一部分。前段时间,我通过 手动更改了该 Helm Chart 部署的资源kubectl。这导致 helm 版本部署的 yaml 资源中的值(如 所示helm get values <release>)与集群中实际部署的值之间存在一些偏差

示例:kubectl describe deployment <deployment>显示通过 手动应用的更新图像kubectl re-apply。而helm show values <release>显示了 helm 用于所述部署的原始图像。

我意识到我应该使用helm upgrade修改后的 value.yaml 文件执行 a 来执行图像更改,但我想知道是否有一种方法可以将我手动更新的值的状态与 helm 版本中的值同步。目标是创建一个values.yaml反映集群资源当前状态的新默认值。

谢谢!

kubernetes kubectl kubernetes-helm

5
推荐指数
1
解决办法
2918
查看次数

Values.yaml 中的 helm 配置映射

我正在尝试执行以下操作,因此主机中的 MYVALUE 需要更改为包含版本名称。无法弄清楚如何执行此操作,因为您无法像{{ .Release.Name }}直接在values.yaml 文件中使用环境变量一样。

我确实为 mysql pod 做了 afullnameOverride和 put ,fullnameOverride: myrelease-mysql然后 jasper 可以host: myrelease-mysql工作,但想知道是否有一种聪明的方法可以将发布名称放入 value.yaml 文件中。

我假设我需要使用 configMap,因为可以.Release.Name在那里使用,然后将该配置键嵌入到 value.yaml 中。

值.yaml

jasperreports:
  mariadb:
    enabled: false
  externalDatabase:
    host: MYVALUE   // Also tried $MVALUE
    user: sqluser
    database: jasper
  jasperreportsUsername: jasper
  env:
      - name: MYVALUE
        valueFrom:
          configMapKeyRef:
              name: mysql-jasper
              key: mysql_releasename
Run Code Online (Sandbox Code Playgroud)

配置映射表

kind: ConfigMap
metadata:
  name: mysql-jasper
data:
  mysql_releasename: {{ .Release.Name }}-"mysql"
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-helm configmap

5
推荐指数
1
解决办法
2万
查看次数