kubernetes未能为负载平衡器安全组创建标记

当我在kubernetes中创建服务时,我看到controller manager将创建一个安全组和minion安全组的新规则。有一些警告: W1028 05:34:44.104402 1 aws.go:1755] Failed to create tags (too many attempts): InvalidParameterValue: Value ( '' ) for parameter Tag key is invalid. Tag key cannot be null

Kubernetes复制控制器调度

如果我的kubernetes群集中有3个仆从,有没有办法让replication controller在仆从1上创建20%的POD,minion2的50%和Minion3的30%?我认为唯一的方法是使用--max pods选项配置每个节点。我认为唯一的方法是使用--max pods选项配置每个节点。是的。但是您必须用自己的逻辑编写自定义。是的。但是您必须使用您的逻辑编写自定义。不幸的是,现在的答案是否定的。最简单的方法是创建三个复制控制器,每个控制器都有所需数量的副本,每个控制器都有一个使用no

Kubernetes 1.2a:我们如何向集群添加不同类型的AWS实例

使用k8s 1.1版,我可以复制k8s启动配置,更改实例类型,然后将我的asg指向新的lc,以将其他实例类型添加到集群中 在版本1.2a8中,有4个存储设备不进行复制…例如“DeviceName”:“/dev/sdc”,“VirtualName”:“ephemeral0”。有人知道在1.2中将不同类型的实例添加到k8s群集的最佳方法吗? 看起来我必须从aws cli更新lc的块设备映射 …由于您无法修改lc,我必须描述k8s one并根据该描述创建一个新的lc-这有点长。看起来,因为1.2现在正

如何删除孤立的Kubernetes吊舱

我正在通过网络运行Kubernetes。在本教程之后,我使用kubectl运行Nginx--image=Nginx--port=80启动了一个Nginx POD。但是,这似乎会创建孤立的吊舱(没有复制控制器)kubectl get rc不返回任何内容,kubectl Descripte pod nginx-198147104-kqudh显示复制控制器:无(kubectl版本“v1.2.0+5cb86ee”显示控制器:ReplicaSet/nginx-198147104,但将其缩放为0只会导致创建

Kubernetes 如何在Stackdriver监控中设置自定义指标警报?

当我尝试在Stackdriver Monitoring中创建警报策略时,我的自定义指标不会显示在下拉列表中。当我尝试在Stackdriver监控仪表板中添加图表时,它们会显示出来。我还需要做些什么才能使这些自定义指标具有可警报性 这些自定义度量是使用kubernetes上的heapster创建的。 我还在参加Stackdriver高级试用 下面是创建图表时资源类型列表的屏幕截图 以下是创建警报策略条件时资源类型列表的屏幕截图 您应该可以访问下拉列表中相同自定义指标的警报,并可以选择“自定义指标

使用Kubernetes的多个环境(登台、QA、生产等)

K8S管理多个环境(QA、登台、生产、开发等)的最佳实践是什么 例如,假设一个团队正在开发一个需要部署一些API以及前端应用程序的产品。通常,这至少需要两种环境: 暂存:在发布给客户之前用于迭代/测试和验证 生产:这是客户端可以访问的环境。应包含稳定且经过良好测试的功能 那么,假设团队使用Kubernetes,那么托管这些环境的最佳实践是什么?到目前为止,我们考虑了两种选择: 为每个环境使用K8s群集 只使用一个K8s集群,并将它们保留在不同的名称空间中 (1) 似乎是最安全的选择,因为它将

Kubernetes 库伯内特斯1.6+;RBAC:通过kubectl获得作为角色群集管理员的访问权限

1.6+看到围绕RBAC和ABAC的许多变化。然而,有点奇怪的是,在默认情况下,无法像以前一样访问仪表板等 访问将导致 User "system:anonymous" cannot proxy services in the namespace "kube-system".: "No policy matched." 网站上的文档很多,但并没有真正说明如何作为集群的创建者实际获得访问权限,从而成为集群管理员 认证我为群集管理员的实用方法是什么?到目前为止,最简单的方法是使用凭据​ 来自/etc

如何最好地利用Kubernetes/minikube DNS进行本地开发

我们正在改用Kubernetes。通过内置dns访问k8s部署中的其他部署服务非常简单。因此,如果我有一个名为app1的pod/服务和一个名为app2的pod/服务,app1需要调用app2,它可以只使用“app2”,k8s dns发挥其魔力,一切正常。这很好,因为我们不需要为所有环境提供一个app1\u主机和app2\u主机的配置管理开销 这也适用于本地使用minikube。如果app1和app2部署到minikube中,它们可以通过服务名称(与应用名称匹配)相互引用 然而,我遇到的问题是地方

什么';默认kubernetes服务的目的是什么?

当您运行:kubectl get svc-n default时,您将拥有一个类型为ClusterIP的kubernetes服务 这项服务的目的是什么?任何推荐信,不胜感激 我在Minikube跑步 xyz:Kubernetes _$ kubectl describe svc/kubernetes Name: kubernetes Namespace: default Labels: component=apiserver

通过LoadBalancer IP地址获取Kubernetes仪表板

我使用Kubeadm安装了Kubernetes HA OS:Centos7 K8S版本:1.9.6 6台虚拟机:2台主机、3台工人和一台LoadBanacer(nginx) 我想使用LoadBalancer Ip addess访问仪表板,我如何才能做到这一点?有这方面的教程吗 谢谢您不能使用IP,但可以创建一个入口文件,该文件将指向dashboard.example.com到您的dashboard服务的路径。 不建议使用此方法,因为这会将仪表板向外部世界打开。 但是use可以使用身份验证代理对用

kubernetes创建了一个以域为结尾的服务

我使用kops在AWS中创建了一个八卦集群,这意味着我的集群名称以k8s.local结尾(clusters.test.k8s.local待执行), 在我尝试创建一个部署之前,一切都很正常,在该部署中,pod名称需要在最后包含一个域(api manager.iot.test.co.nz) 我知道,它无权创建不符合本regex要求的POD: '[a-z]([-a-z0-9]*[a-z0-9])?' 我有办法做到吗 我尝试在template->spec下添加主机名,但它有相同的限制(regex) 这

Kubernetes:拨号tcp 127.0.0.1:8080:连接:连接被拒绝

我已经使用kops启动了kubernetes集群。它正在工作,我开始面临以下问题: kubectl get pods The connection to the server localhost:8080 was refused - did you specify the right host or port? 我如何解决这个问题? 看起来kubernetes apiserver没有运行,如何使其工作 kubectl run nginx --image=nginx:1.10.0 error:

在Google Kubernetes引擎中设置服务节点端口范围

对于我们的用例,我们需要通过NodePort访问许多服务。默认情况下,节点端口范围为30000-32767。使用kubeadm,我可以通过--service node port range标志设置端口范围 我们正在使用Google Kubernetes引擎(GKE)集群。如何设置GKE集群的端口范围?在GKE中,控制平面由Google管理。这意味着您不能自己在API服务器上设置东西。令人遗憾的是,我相信您可以使用kubemciCLI工具来实现它,请参阅

如何检查Kubernetes对象是否已完全删除?

我正在尝试创建一个自动管道,它将在一个命名空间上一个接一个地运行多个pod。当前的问题是,在两次运行之间,我想等待一个pod被完全删除,然后再运行下一次。有没有办法检查给定的pod是否已完全删除 当前脚本: kubectl delete -f pod.yaml sleep 10 kubectl create -f pod.yaml error when creating "pod.yaml": object is being deleted: pods "test-pod" already ex

Kubernetes:按名称空间计算外部传出流量

在Kuberenetes中,我可以从prometheus获得每个名称空间的所有传出流量。但我需要将其划分为内部和外部流量 有人知道如何为Kubernetes中的每个名称空间获取外部传出流量吗?希望至少可以通过该插件解决带宽控制问题。我会把结果写下来。

Kubernetes 如何使ELB连接到Kubernates部署中route53中的域名

目前,我正在使用loadbalancer类型进行部署和创建服务。我可以通过创建的ELB访问POD。然后使用路线53,我使用别名将ELB与k8-test.abc.com连接。下面是片段 apiVersion: v1 kind: Service metadata: name: %APP_FULL_NAME%-service-lb-http labels: appname: %APP_FULL_NAME% stage: %APP_ENV% component: app-

Kubernetes 如何在kubeadm创建的kubenetes集群上设置istio?

我已经通过kubeadm建立了kubenetes集群。现在我想设置istio,但是我发现istio文档没有包含关于kubeadm的指南。 它包括minikube和其他云提供商的说明,如何为kubeadm设置istio?屏幕截图中的这些标题不是在这些平台上安装istio的说明,它们只是在不同平台上安装Kubernetes,这是istio安装的先决条件。 如果您已经安装了Kubernetes集群(甚至通过kubeadm),只需遵循Istio

Can';t从web UI在Google云中创建Kubernetes集群

我删除了一系列IAM策略,并认为这会阻止我在谷歌云(通过UI)中创建k8s集群 每次单击“创建群集”,它都会处理一段时间,然后挂断并抛出以下错误: Create Kubernetes Engine cluster "standard-cluster-1" Just now MyProject Google Compute Engine: Required 'compute.zones.get' permission for 'projects/<MY_PROJECT_ID>/zone

Kubernetes 拒绝连接到本地主机:8080

我是kubernetes的新手,不确定我缺少什么先决条件才能让它工作 我运行了以下命令 kubectl create -f k8s-pod.yml 答案是 与服务器localhost:8080的连接被拒绝-是吗 指定正确的主机或端口 k8s pod.yml apiVersion: v1 kind: Pod metadata: name: app labels: language: go env: test spec: containers: - nam

Kubernetes K8s服务作为守护程序

是否有可能在k8s的所有命名空间中动态部署服务 现在,如果端口不再使用,k8s将删除glusterFS端点(依赖于ns)。 例: 因此,我为端口1制作了一个svc,以便一直使用,这样我就不会在任何ns中丢失/删除端点 apiVersion: v1 kind: Service metadata: name: glusterfs spec: ports: - port: 1 每次有人创建一个新名称空间时,动态部署上述服务将非常有趣。守护程序用于每个节点只部署一个副本 说到您的问题,为什

Kubernetes 列出为服务提供服务的吊舱

我正在尝试获取为特定服务提供服务的播客列表 有3个吊舱与我的服务相关 我试图执行下面的命令 oc描述svc my-svc-1 我希望看到与此服务相关的播客。但这并没有出现。What命令仅获取与服务关联的pod列表。服务使用选择器选择pod。查看服务的选择器,并使用该选择器获取POD。对于kubectl,命令如下所示: kubectl get pods --selector <selector> 另一个问题,你能建议我如何列出以某个字符串结尾的服务吗。我正在尝试这样做oc get s

Kubernetes istio policy pod每隔几秒钟就出现一次CrashLoopBackOff

我在最后一天左右与下面的错误作斗争。有什么想法请帮忙 以下是我的配置: 安装: ISTIO_VERSION=istio-1.2.6 GATEWAYS=gateways kubectl create ns istio-system helm install $ISTIO_VERSION/install/kubernetes/helm/istio-init \ --name istio-init \ --namespace istio-system helm install $

Kubernetes 需要将部署名称传递给相关POD

我有一个docker映像,其中包含一个nodejs应用程序,我通过kubernetes部署了它,我有3个吊舱。我需要的是将每个部署的名称传递给相关的POD,这样我就为每个部署都有一个唯一的id,该id仅对该部署是唯一的,并且该部署中的所有POD都可以使用该id。 这一条也没有多大帮助: 我知道,事实上,我可以在以下方面做到: env: - name: unique id value: {{uuidv4}} 但我更希望: env: - name: deployment name

分析Kubernetes部署过程

我是Kubernetes的新手,currenlty我正在研究Kubernetes的评测。我想在Kubernetes中记录部署过程创建pod、重新启动pod等,并想知道每个过程所需的时间和资源RAM、CPU,例如下载映像、构建部署、pod等 有什么方法或工具可以让我记录这个过程吗?谢谢大家! 您可以在pod的事件提要中找到这些内容,请检查kubectl Descripte pod。如果不了解某些组件和深入的编码,我不确定您是否能够实现您想要的结果 可以从Kubernetes检索到什么: 有关活动的

Kubernetes 设置GKE内部负载平衡器时,为什么我可以从单独的VM访问IP地址,但不能在集群内访问?

我有一个K8s部署在GKE中运行,它连接到一个内部负载平衡器服务,该服务为VPC子网分配一个IP地址。当我在子网中启动单个计算虚拟机时,我可以使用ILB IP地址访问部署,但我无法访问集群内的部署,也无法从另一个命中相同IP地址的GKE集群访问部署 我不确定我遗漏了什么,或者ILB是否不是这个用例的正确工具。最终目标是在同一子网上的不同GKE集群之间进行通信。如果您可以从VM而不是集群进行访问,这很奇怪。群集、VM、ILB必须位于同一区域和子网中 在这里[1]您还可以找到一个关于如何为GKE创建

Kubernetes 是否重新启动群集中的所有k8s吊舱?

重启集群中所有POD的最佳方式是什么?我在想,在kubernetes中设置一个cronjob任务,以便在正常的基础上执行此操作,并确保集群的负载均衡,但是在正常的基础上执行此操作的最佳实践是什么?另外,作为一次性任务,最好的方法是什么?这是个坏主意。改为通过实际分析有选择地进行检查:) 但是也就是说,kubectl delete pod--all--all名称空间或类似的名称空间。如果你想从CronJob运行它,这意味着你需要在里面有管理员的kubeconfig,以便从pod连接到kube ap

Kubernetes 容器\内存\使用情况\按部署名称列出的字节

给定一个kubernetes群集,该群集具有: 我喜欢使用metriccontainer\u memory\u usage\u bytes,但选择bydeployment\u name而不是pod 如果deployment\u name=foo没有使用deployment\u name=foo-bar的部署,那么像container\u memory\u usage\u bytes{pod\u name=~“foo-.+”}这样的选择器非常好 我希望通过度量kube\u pod\u容器\u

Kubernetes 无法获取Pod以绑定minikube中的本地存储&引用;节点没有';“找不到可用的永久卷”&引用;“等待创建第一个消费者”;

在minikube上配置Kubernetes部署时遇到一些问题,请使用本地存储。我正在尝试设置一个referencedb实例,该实例将把一个目录从minikube VM装载到referencedb Pod。我的设置如下 存储 因此,我定义了一个storageClass的local storage类型,如在线教程中所述。然后,我创建一个PersistentVolume,它要求底层主机上的/mnt/data路径提供10GB的存储空间。我在minikube虚拟机上创建了此目录 $ minikube s

Kubernetes 更改GKE上我的LoadBalancer的IP地址

我想在谷歌云中更改我的LoadBalancer ingress nginx控制器的IP地址。我现在已经通过LoadBalancer分配了IP地址。请看屏幕截图。不幸的是,它没有被GKE采用。为什么?那是虫子吗? 我已经在我的GKE测试集群上验证了这一点 当您启动时,它不会分配给任何虚拟机。根据创建群集的方式/保留ip(标准版或高级版),可能会出现如下错误: Error syncing load balancer: failed to ensure load balancer: failed to

Kubernetes OpenShift 3.11中的健康检查修改

我需要在Openshift 3.11上暂时禁用生产环境中的活动性探测。 是否有必要重新部署吊舱,还是进行热插拔改造 Thanx提前不幸的是,目前没有动态禁用探测的功能。 查看此讨论了解更多详细信息, 如果你想禁用它,你需要在没有探测器配置的情况下重新部署pod。thanx对于你的答案,我将计划重新部署

Kubernetes 具有动态规则的Prometheus服务器

我目前正在从事一个使用普罗米修斯服务器(而不是普罗米修斯操作员)的项目。 我们希望引入一种无需重新部署就能修改普罗米修斯规则的方法 我对容器和Kubernetes完全不熟悉,有点不知所措,所以我希望有人能让我知道我是否在浪费时间来实现这一目标 到目前为止,我想做的是: 将PrometheusRules存储在configmap中 将规则的配置映射应用于Prometheus服务器配置 为Prometheus服务器创建一个可以修改此配置映射的侧车 sidecar将公开一个API,因此用户将拥有规则的C

kubernetes中kibana.config中elasticsearch.hosts的正确(典型)值是多少

在OpenDistro Helm README.md中,定义: 这意味着kubernetes集群外部有一个DNS主机名。但是,使用默认值而不使用自定义证书时生成的名称会导致: # If no custom configuration provided, default to internal DNS - name: ELASTICSEARCH_HOSTS value: https://opendistro-es-client-service:9200 它来自kiba

Kubernetes Fluentd无法从标准输出中收集k8s cronjob的日志

在k8s集群上,我将fluentd作为守护程序运行,并使用尾部插件从名称空间收集容器日志并将其发送到弹性集群。。。相当标准的设置 <source> @type tail path /var/log/containers/*_default_*.log, /var/log/containers/*_test-namespace_*.log pos_file /var/log/ns-containers.log.pos read_lines_limit 100 tag

Kubernetes 让Heapster和InfluxDB进行通信

我正试图在Kubernetes集群上设置Heapster/InfluxDB/Grafana。看起来Heapster正在生成数据,但没有将其发送到XDB。当我查看Heapster pod中eventer容器的容器日志时,日志如下所示: E1020 18:43:20.006608 52 influxdb.go:147] Failed to create infuxdb: failed to ping InfluxDB server at "monitoring-influxdb:8086"

Kubernetes 访问托管在pod上的网页

我有一个部署,在端口9001上托管一个网站,并附带一个服务。我想允许任何人(从集群外部)能够连接到该站点 任何帮助都会被理解。当你写到这不是一个云部署时,你需要考虑如何正确地将这个暴露给世界。首先,为您的部署创建一个NodePort类型的服务。这样,节点将在高端口上公开该服务 根据您的网络,此时您需要在网络中配置负载平衡器,以将某些IP:80的流量转发到您的节点高节点端口,或者例如在DeamonSet中部署HAProxy,并使用hostNetwork:true将80代理到您的节点端口 部署Ngi

如何单独访问couchdb实例Kubernetes OpenWhisk部署

我使用[1]在Kubernetes集群中部署了一个Openwhisk集群,对于我的应用程序,我希望访问内部couchDB数据库 从功能内部 从外部位置。我在下面添加了svc列表 我尝试了几种方法,但似乎无法访问couchDB数据库。我将couchDB服务从ClusterIp更改为NodePort。如果您有以下方面的帮助,我们将不胜感激。假设节点的IP为123.45.67.89 在函数中使用哪个主机:端口?我原以为是123.45.67.89:30641,但没用 什么主机:像curl调用一样从外部使

Kubernetes-每次“服务”的最大并发请求限制

Kubernetes服务可以并行处理的最大请求数是多少。我将根据输入请求为POD提供自动缩放功能,但服务在某个时间点可以处理的最大请求数是否有任何限制。Kubernetes中的服务只是内核中的路由配置。当您调用服务URL/IP时,您的本地内核将把请求转发到一个随机Pod 因此,请求限制由集群中单个节点可以处理的请求数定义 谢谢你,卢卡斯。我想更清楚地了解这一点。这是否也适用于所有外部http请求?假设我使用一个Nodeport服务,这个Nodeport服务一次可以处理的外部http请求的总数取决

Kubernetes群集无法将自动创建的google云平台磁盘连接并装载到工作节点

基本上,我试图通过kubeadm在GCE上部署一个集群,支持StorageClass,而不使用Google Kubernetes引擎 我在东京部署了一个带有主节点的集群,在香港、台湾和俄勒冈部署了3个工作节点。 NAME STATUS ROLES AGE VERSION k8s-node-hk Ready <none> 3h35m v1.14.2 k8s-node-master Ready master

Kubernetes 在头盔升级期间附加主机名

在我们的CI管道中,我们已经切换到使用基于约定的主机名,主要用于基于PR的动态开发环境。由于其他服务指向这些旧主机名,此新功能要求我们尊重在Helm图表中设置的旧主机名 我们希望在现有主机名列表中附加或前置基于约定的主机名,而不覆盖任何值 目前,我们已经找到了一个解决办法;但是,我们希望找到一个更清洁的解决方案。该解决方法允许我们设置service.hostnames[10]=k8s-myapp-prod.website.com,其中索引10足够高,不会与图表中的主机名冲突 我们只希望这里有2个

Kubernetes本地裸机上的Strimzi Kafka

我有一个kubernetes集群在多台本地裸机/physcal机器上运行。 我想在集群上部署kafka,但我不知道如何在配置中使用strimzi 我尝试按照快速入门页面上的教程进行操作: 我的动物园管理员吊舱在2.4点待处理。创建群集: 我的豆荚: kubectl describe -n my-kafka-project pod/my-cluster-zookeeper-0 Name: my-cluster-zookeeper-0 Namespace: my-kaf

Kubernetes 控制RBAC规则,在创建的名称中创建名称空间和资源

我发现了很多关于如何授予helm在特定名称空间中创建资源的权限的信息 我正在尝试看看是否可以在fly上使用随机名称创建名称空间,然后使用helm安装和删除名称空间中的资源 我的想法是创建一个名称为Fixedsuffix randomprefix的名称空间,然后允许helm在其中创建所有资源。这可能吗 我可以创建clusterrole和clusterrolebinding,以允许tiller的serviceaccount创建名称空间,但我无法弄清楚如何拥有一个可以在特定名称空间中创建资源的serv

Kubernetes 舵插值

我在Helm部署中设置以下环境变量,如下所示 name: SERVER_ENDPOINT value: {{ .Values.server.dev_proxy_endpoint }} 但是希望插入值变量的环境部分dev,如下所示 name: SERVER_ENDPOINT value: {{ .Values.server. {{ .Values.environment | lower }} _proxy_endpoint }} 这可能吗 对第一条评论的答复 我通过在文件顶部创建一个新的定义尝

为什么印花布在Kubernetes中缺少一些节点对等地址?

我正在使用kubernetes v1.18,并使用印花布作为我的CNI插件,这是印花布吊舱状态删除未更新吊舱: [root@localhost~]kubectl获取吊舱-所有名称空间-o宽 名称就绪状态重新启动老化IP节点指定节点就绪门 calico-kube-Controller-75d555c48-lt4jr 1/1运行0 2d12h 10.11.102.134 localhost.localdomain 印花布节点-6rj58 1/1运行0 37h 192.168.31.30 k8ssla

使用Kustomize批量编辑Kubernetes注释,无需重新启动POD

我正试图找到在大量Kubernetes资源上批量编辑注释的最佳方法。看起来Kustomize可能是最好的选择: 这些资源已经是kustomization.yaml的一部分 然后,我可以使用新的或修订的注释编辑kustomization.yaml kubectl apply-k./根据需要使用新注释更新所有相关资源 不幸的是,这使得所有的pod终止并重新启动,这有时比我希望的要长。在没有对YAML进行其他更改的情况下,在没有Kustomize的情况下应用注释不需要重新部署,我很想做一些类似的事情,