小编onl*_*ine的帖子

如何使用Kubernetes yaml文件设置动态值?

例如,部署yaml文件:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: guestbook
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: guestbook
      spec:
        container:
          - name: guestbook
            image: {{Here want to read value from config file outside}}
Run Code Online (Sandbox Code Playgroud)

ConfigMapKubernetes 有一个功能,但它也将键/值写入yaml文件.有没有办法设置环境变量的关键?

templates yaml config key-value kubernetes

35
推荐指数
8
解决办法
2万
查看次数

如何从Kubernetes中删除所有资源一次?

包括:

  • 守护进程集
  • 部署
  • 工作
  • 副本集
  • 复制控制器
  • 有状态集
  • 服务
  • ...

如果有replicationcontroller,当删除一些部署时,它们将重新生成.有没有办法让kubenetes回到初始化状态?

kubernetes

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

如何使用helm设置多个值?

使用helminstall可以在安装图表时设置值,如:

helm install --set favoriteDrink=slurm ./mychart
Run Code Online (Sandbox Code Playgroud)

现在想要设置如下值:

helm install --set aws.subnets="subnet-123456, subnet-654321" ./mychart
Run Code Online (Sandbox Code Playgroud)

但失败了:

Error: failed parsing --set data: key " subnet-654321" has no value
Run Code Online (Sandbox Code Playgroud)

似乎helm--set认识逗号,,并检查下一个字符串作为重点.所以在这种情况下设置这样的字符串时不能使用?


以这种方式测试

helm install charts/mychart \
    --set aws.subnets={subnet-123456,subnet-654321}
Run Code Online (Sandbox Code Playgroud)

得到错误:

Error: This command needs 1 argument: chart name
Run Code Online (Sandbox Code Playgroud)

这种方式有效

helm install charts/mychart \
    --set aws.subnets="subnet-123456\,subnet-654321"
Run Code Online (Sandbox Code Playgroud)

参考

https://github.com/kubernetes/helm/blob/master/docs/using_helm.md#the-format-and-limitations-of---set

string shell command-line-interface kubernetes kubernetes-helm

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

如何在 kubernetes 上配置由 helm 安装的警报管理器?

使用Helm已安装PrometheusGrafana在 kubernetes 集群中:

helm install stable/prometheus
helm install stable/grafana
Run Code Online (Sandbox Code Playgroud)

它有一个alertmanage服务。

在此处输入图片说明

但是我看到一篇博客介绍了如何使用 yaml 文件设置 alertmanager 配置:

http://blog.wercker.com/how-to-setup-alerts-on-prometheus

是否可以使用当前方式(由 helm 安装)来设置 somealert rules和 config for CPUmemory并在不创建其他 yaml 文件的情况下发送电子邮件?

我看到了一个K8S介绍configmapalertmanager

https://github.com/kubernetes/charts/tree/master/stable/prometheus#configmap-files

但是不清楚怎么用,怎么做。


编辑

我下载了的源代码stable/prometheus来看看它的作用。从values.yaml我发现的文件中:

serverFiles:
  alerts: ""
  rules: ""

  prometheus.yml: |-
    rule_files:
      - /etc/config/rules
      - /etc/config/alerts
    scrape_configs:
      - job_name: prometheus
        static_configs:
          - targets:
            - localhost:9090
Run Code Online (Sandbox Code Playgroud)

https://github.com/kubernetes/charts/blob/master/stable/prometheus/values.yaml#L600

所以我认为应该自己写这个配置文件来定义警报rulesalertmanager这里。但不要清楚这个块:

    rule_files: …
Run Code Online (Sandbox Code Playgroud)

alert monitoring grafana kubernetes prometheus

9
推荐指数
1
解决办法
9703
查看次数

Grafana HTTP错误网关错误和模板初始化失败

使用helm安装PrometheusGrafanaminikube当地。

$ helm install stable/prometheus
$ helm install stable/grafana
Run Code Online (Sandbox Code Playgroud)

设置端口转发后,Prometheus服务器,alertmanager grafana可以运行:

$ export POD_NAME=$(kubectl get pods --namespace default -l "app=prometheus,component=server" -o jsonpath="{.items[0].metadata.name}")
$ kubectl --namespace default port-forward $POD_NAME 9090

$ export POD_NAME=$(kubectl get pods --namespace default -l "app=prometheus,component=alertmanager" -o jsonpath="{.items[0].metadata.name}")
$ kubectl --namespace default port-forward $POD_NAME 9093

$ export POD_NAME=$(kubectl get pods --namespace default -l "app=excited-crocodile-grafana,component=grafana" -o jsonpath="{.items[0].metadata.name}")
$ kubectl --namespace default port-forward $POD_NAME 3000
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明 在此处输入图片说明

从grafana添加数据源,出现HTTP Error Bad Gateway错误:

在此处输入图片说明

从以下位置导入仪表板315: …

monitoring grafana kubernetes prometheus minikube

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

在Kubernetes上运行Kafka的好方法吗?

对于大型在线应用程序,请使用k8s来运行它。规模可能是每日活动用户500,000。

k8中的应用程序需要消息传递功能-Pub / Sub,有以下选项:

  • 卡夫卡
  • 兔子MQ
  • 雷迪斯

卡夫卡

它需要zookeeper,并且能否在os上运行取决于磁盘I / O。那么,如果将其安装到k8s集群中,怎么办?性能会变差吗?

而且,如果将Kafka保留在k8s集群之外,请从k8s集群内部的应用程序连接Kafka,那么性能如何?他们在不同的层,会不会很慢?

兔子MQ

它比Kafka慢,但是对于每天有50万应用程序的用户来说,它足够好吗?如果是这样,也许这是一个不错的选择。

雷迪斯

这是另一种选择。也许是最简单的一种。但是从互联网上我知道它有时会丢失信息。如果为真,那就太糟糕了。


因此,最重要的是,在k8s上使用Kafka(也与zookeeper一起使用),在此使用案例中是好还是不好?

rabbitmq redis apache-kafka kubernetes apache-zookeeper

6
推荐指数
1
解决办法
2298
查看次数

如何从外部连接到 Kubernetes 中的无头服务?

我创建了一个无头服务:

apiVersion: v1
kind: Service
metadata:
  name: myapp-service-headless
spec:
  ports:
    - port: 80
  selector:
    app: myapp
  clusterIP: None
Run Code Online (Sandbox Code Playgroud)

从 Kubernetes 仪表板我可以看到它Internal endpoints

myapp-service-headless:80 TCP
myapp-service-headless:0 TCP
Run Code Online (Sandbox Code Playgroud)

在此应用程序中,我还将内部端点设置为:

http://myapp-service-headless
Run Code Online (Sandbox Code Playgroud)

但是从外部如何访问其IP来连接API呢?

比如我的Kubernetes的IP是192.168.99.100,那么连接192.168.99.100可以吗?

现在来自 Kubernetes 仪表板的服务状态

服务

在此输入图像描述

服务详情

在此输入图像描述

ip internals cluster-computing endpoint kubernetes

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

为什么 Prometheus pod 在 Rancher 服务器上的 Kubernetes 集群中由 helm 设置后挂起?

在 Vagrant 中安装了 Rancher 服务器和 2 个 Rancher 代理。然后从 Rancher 服务器切换到 K8S 环境。

在牧场主服务器主机,安装kubectlhelm。然后安装PrometheusHelm

helm install stable/prometheus
Run Code Online (Sandbox Code Playgroud)

现在从 Kubernetes 仪表板检查状态,有 2 个待处理的 pod: 在此处输入图片说明

它注意到了PersistentVolumeClaim is not bound,Rancher 服务器不是默认安装了 K8S 组件吗?

(另一个名字,同样的问题) 在此处输入图片说明

编辑

> kubectl get pvc
NAME                                   STATUS    VOLUME    CAPACITY   
ACCESSMODES   STORAGECLASS   AGE
voting-prawn-prometheus-alertmanager   Pending                                                     6h
voting-prawn-prometheus-server         Pending                                                     6h
> kubectl get pv
No resources found.
Run Code Online (Sandbox Code Playgroud)

编辑 2

$ kubectl describe pvc voting-prawn-prometheus-alertmanager
Name:          voting-prawn-prometheus-alertmanager
Namespace:     default
StorageClass:
Status:        Pending …
Run Code Online (Sandbox Code Playgroud)

vagrant kubernetes rancher prometheus kubernetes-helm

4
推荐指数
1
解决办法
7218
查看次数

如何使用--set用Prometheus图表设置值?

例如,设置alertmanager.ingress.annotations为添加两个项目,这两个方法都不起作用:

$ helm install stable/prometheus \
  --set alertmanager.ingress.enabled=true \
  --set "alertmanager.ingress.annotations={alb.ingress.kubernetes.io/scheme: internet-facing, alb.ingress.kubernetes.io/tags: Environment=dev,Team=test}"

Error: YAML parse error on prometheus/templates/alertmanager-ingress.yaml: error unmarshaling JSON: json: cannot unmarshal array into Go struct field .annotations of type map[string]string
$ helm install stable/prometheus \
  --set alertmanager.ingress.enabled=true \
  --set "alertmanager.ingress.annotations={'alb.ingress.kubernetes.io/scheme': 'internet-facing', 'alb.ingress.kubernetes.io/tags': 'Environment=dev,Team=test'}"

Error: YAML parse error on prometheus/templates/alertmanager-ingress.yaml: error unmarshaling JSON: json: cannot unmarshal array into Go struct field .annotations of type map[string]string
Run Code Online (Sandbox Code Playgroud)

那怎么用呢?

json yaml prometheus kubernetes-helm

4
推荐指数
1
解决办法
5337
查看次数

无法使用 Helm 将长数字字符串解析为值

我想从外部设置 docker 映像存储库和标记值--set。在我的部署清单 yaml 文件中,我写道:

\n\n
image: "{{ .Values.image.awesomeapp.repository }}:{{ .Values.image.awesomeapp.tag | quote }}"\n
Run Code Online (Sandbox Code Playgroud)\n\n

Helm这样运行:

\n\n
helm install charts/awesomeapp \\\n    --set image.awesomeapp.repository=1234567890.dkr.ecr.ap-northeast-1.amazonaws.com/awesomeapp \\\n    --set image.awesomeapp.tag=20180131010101\n
Run Code Online (Sandbox Code Playgroud)\n\n

但失败了:

\n\n
Failed to apply default image tag "1234567890.dkr.ecr.ap-northeast-1.amazonaws.com/awesomeapp:\\"2.01801310101013e+13\\"": couldn\'t parse image reference "1234567890.dkr.ecr.ap-northeast-1.amazonaws.com/orange-battle:\\"2.01801310101013e+13\\"": invalid reference format\n
Run Code Online (Sandbox Code Playgroud)\n\n

为什么\xe2\x80\x99不能正确暂停图像标签?

\n

tags image repository docker kubernetes-helm

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