小编OhH*_*ark的帖子

无法从浏览器访问kubernetes NodePort服务

我正在我的AWS EC2上通过Minikube在Kubernetes上进行练习。作为其中的一部分,我创建了部署并通过NodePort服务公开它,然后检查:

curl http://<node-ip>:<service-port>
Run Code Online (Sandbox Code Playgroud)

在 EC2 机器中运行良好。但是当我在浏览器上点击相同的 URL 时,我得到了:

This site can't be reached
Run Code Online (Sandbox Code Playgroud)

谁能帮我解决问题是什么以及如何访问它?

谢谢。

这是我的部署 YAML 文件:


apiVersion: apps/v1
kind: Deployment
metadata:
  name: myfirstdeployment
  labels:
    app: web
spec:
  replicas: 1
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      name: myfirstpod
      labels:
        app: web
    spec:
      containers:
      - name: myfirstpod-1
        image: nginx
        command: ["sleep","3600"]
        ports:
        - containerPort: 80

这是我的服务 YAML 文件


apiVersion: v1
kind: Service
metadata:
  name: myfirstservice
spec:
  selector:
    app: web
  ports: …
Run Code Online (Sandbox Code Playgroud)

kubernetes minikube kubernetes-service

3
推荐指数
1
解决办法
1488
查看次数

如何从 minikube 中删除现有下载的 docker 镜像

我正在使用DevSpace 工具minikube将多个服务部署到我的本地集群 ( ) 。一旦有人对其中一项服务进行更改并将图像推送到我们的私人存储库,我就需要这些更改在我的本地可用。我现在要做的就是完全删除集群并启动一个新集群。在这种情况下,所有具有相同标签的图像都会更新为最新版本,而不是缓存的版本。minikube

但我相信有一些更优雅的方法来克服这个问题。因此,在重新部署服务之前,我需要以某种方式从本地集群中清理/删除/删除过时的映像。

有人可以指出它们的存储位置,我如何查看和删除它们?谢谢。

docker kubernetes minikube devspace

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

k8s中如何判断一个节点是master还是worker?

在K8s中,每个集群都有一组节点,一些是master节点,另一些是worker节点。我们如何知道一个节点是master还是worker?

kubernetes kubernetes-cluster

3
推荐指数
1
解决办法
5343
查看次数

在 cAdvisor 的抓取工具中更改 Prometheus 作业标签会破坏 Grafana 仪表板

我使用社区图表kube-prometheus-stack使用 Helm 在 Kubernetes 集群上安装了 Prometheus,并且在捆绑的 Grafana 实例中获得了一些漂亮的仪表板。我现在希望 Vertical Pod Autoscaler 的推荐器使用 Prometheus 作为历史指标的数据源,如此处所述。这意味着,我必须对 cAdvisor 的 Prometheus scraper 设置进行更改,这个答案为我指明了正确的方向,因为在进行更改后,我现在可以job在 cAdvisor 的指标上看到正确的标签。

不幸的是,现在 Grafana 仪表板中的一些图表已损坏。它看起来不再获取 CPU 指标 - 而是仅显示与 CPU 相关的图表的“无数据”。

因此,我认为我必须调整图表才能再次正确获取指标,但我在 Grafana 中没有看到任何明显的地方可以做到这一点?

不确定它是否与问题相关,但我正在 Azure Kubernetes 服务 (AKS) 上运行我的 Kubernetes 集群。

values.yaml这是我在安装 Prometheus 时向 Helm 图表提供的完整内容:

kubeControllerManager:
  enabled: false
kubeScheduler:
  enabled: false
kubeEtcd:
  enabled: false
kubeProxy:
  enabled: false
kubelet:
  serviceMonitor:
    # Diables the normal cAdvisor scraping, as we add it with the …
Run Code Online (Sandbox Code Playgroud)

grafana kubernetes prometheus azure-aks

3
推荐指数
1
解决办法
2415
查看次数

如何在python程序中确定k8s中pod当前的内存使用情况?

我的 python 程序在 k8s pod 上运行。该程序从数据库读取 pandas dataframe 中的数据并执行一些数据转换操作。在其中一项操作中,数据大小呈指数增长,导致 pod 内存不足错误。由于它是pandas,所以所有数据都保存在内存中。

为了避免这种情况,如果内存消耗超过阈值,我需要将数据写入磁盘。为此,我需要知道 python 程序中当前的 pod 内存利用率,以便一旦阈值达到(例如 90%),我就开始将数据转储到磁盘并释放内存。

基本上我需要知道 python 程序中的 pod 内存利用率。

有什么建议么?提前致谢。

python-3.x kubernetes

3
推荐指数
1
解决办法
4744
查看次数

How to cp data from one container to another using kubernetes

Say we have a simple deployment.yml file:

apiVersion: apps/v1 
kind: Deployment
metadata:
  namespace: ikg-api-demo
  name: ikg-api-demo
spec:
  selector:
    matchLabels:
      app: ikg-api-demo
  replicas: 3 
  template:
    metadata:
      labels:
        app: ikg-api-demo
    spec:
      containers:
        - name: ikg-api-demo
          imagePullPolicy: Always
          image: 913xxx371.dkr.ecr.us-west-2.amazonaws.com/main_api:c56cefbd0c81142558cf814cba7d7cd75d7cb6a7
          ports:
            - containerPort: 80
Run Code Online (Sandbox Code Playgroud)

the problem is that this image/container depends on another image/container - it needs to cp data from the other image, or use some shared volume.

How can I tell kubernetes to download another image, run it as a container, …

kubernetes docker-volume docker-copy amazon-eks eks

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

如何从 go 程序获取/更新 Kubernetes 自定义资源?

我正在寻找相当于:

kubectl get some-custom-resource-kind some-custom-resource -o yaml > file.yaml
Modify the yaml file...
kubectl apply -f file.yaml
Run Code Online (Sandbox Code Playgroud)

Kubernetes 有一个用于标准资源类型的客户端 go 库。

并且各种供应商都有用于其自定义资源的客户端库。

但是我需要获取/更新没有公开可用的客户端 go 库的资源类型。该逻辑今天在 bash 脚本中实现,我正在尝试将该功能移至 go 控制器。

似乎应该有一种直接的方法来做相当于 kubectl 的事情。

谢谢,保罗

go kubernetes

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

有没有一种简单的方法可以优雅地关闭 python grpc 服务器?

是一篇解释如何在 kotlin 中正常关闭 GRPC 服务器的博客。

这是唯一的方法吗?手动计算实时呼叫并处理 SIGTERM?这应该是正常的行为。

我找不到如何在 python 中计算实时调用。有人可以指出我有帮助的文档吗?

python kubernetes grpc

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

如何在 GCP BigQuery 中创建分片表

当我们开始使用 GCP BigQuery 时,我们的代码必须从数据集中所谓的分片表中检索数据。该表组的名称类似于,sometablename_(3000)图标表示为在此输入图像描述。括号中的数字表示迄今为止在数据集中创建的表的总数以及日期,每天这些表都会被其他一些发布者添加到那里,因此计数每天都会增加。我们的代码需要一个通配符查询来限制日期范围,以便从此表中读取数据,这可以正常工作。从控制台创建表时我们看到的唯一其他选项是分区表,其表示方式不同。

但好奇的问题是,这些表最初是如何每天创建的?当我们手动尝试创建另一个具有相同名称格式的表时,它被创建为单独的表,但进入该组。不确定文档是否有任何参考,但找不到任何参考。

因此,我们非常感谢任何有助于理解这一背景的帮助。

google-bigquery

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

何时使用 NodePort、ClusterIP、LoadBalancer、Headless 作为 Ingress 后端?

以下示例将向外部公开服务。那么为什么在这种情况下被NodePort/LB允许,这不是多余的吗?

  rules:
  - host: lab.example.com
    http:
      paths:
      - path: /service-root
        backend:
          serviceName: clusterip-svc
          servicePort: 8080
      - path: /service-one
        backend:
          serviceName: nodeport-svc
          servicePort: 8080
      - path: /service-two
        backend:
          serviceName: headless-svc
          servicePort: 8080
Run Code Online (Sandbox Code Playgroud)

NodePort使用、ClusterIPLoadBalancerHeadless作为 Ingress 后端有什么特别的优势吗?

kubernetes kubernetes-service

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