如何访问用于登录kubernetes的单个容器id

在kubernetes中运行的容器是否可以访问其容器id?如果我有一个服务(我的术语,不是kubernetes),并且水平扩展了5倍,我想登录到stdout,包括单独的容器id。这是可能的,还是我应该这样做?我可能还没有掌握kubernetes服务背后的概念。您尝试过向下的API音量吗?这是将Pod和容器元数据放入容器中的一种简单方法。虽然它没有提到容器id,但其他元数据可能会有用 另一个选项是在容器中包含kubectl,如OpenShift的中所述,因此我假定也包括Kubernetes,您可

Kubernetes cadvisor对容器内存使用情况的报告不正确

cAdvisor报告普罗米修斯使用的内存为14GB,其中top报告为6.xGB 有人能解释为什么会出现这种差异吗 容器、内存、使用、字节的记录 Current memory usage in bytes, including all memory regardless of when it was accessed 但不清楚这指的是什么-我想是虚拟内存大小 根据cAdvisor的报告: core@ip-172-20-100-148 ~ $ curl -q localhost:4194/metr

Kubernetes Traefik对已删除POD的连接做了什么?

假设您有一个用Traefik作为入口控制器的k8s集群 HTTP API应用程序部署到集群(具有入口资源),该集群能够处理SIGTERM,并且在处理所有活动请求之前不会退出 假设您使用10个副本部署应用程序,获得一些流量,并将部署扩展到5个副本。这5个吊舱将从匹配的服务资源中拉出 对于这5个POD,应用程序将收到SIGTERM,并开始正常关机 问题是,Traefik将如何处理那些被拉出的5个吊舱的活动连接 它是否会等到收到来自5个POD的所有响应,并且在此期间和之后不向它们发送任何流量 它是否

Kubernetes 容器运行时网络未就绪:cni配置未初始化

我正在运行在Virtualbox内部的centos虚拟机上安装kubernetes(kubeadm),因此通过yum我安装了kubeadm、kubelet和docker 现在,在尝试使用kubeadm init--pod network cidr=192.168.56.0/24--apiserver advision address=192.168.56.33/32设置集群时,我遇到以下错误: Unable to update cni config: No networks found in /

Kubernetes 如何手动恢复PV

根据具有“保留”政策的官方文件,PV可以手动恢复。这实际上意味着什么?是否有一种工具可以让我从“保留”PV读取数据并将其写入另一个PV,或者意味着您可以装载该卷手册以获得访问权限?有三种回收策略定义删除绑定卷声明后持久卷的情况 保留 删除 回收 删除表示永久卷以及外部基础结构中的关联存储资产被删除 回收将清理卷rm-rf/thevolume/*之后,它将可用于新的持久性卷声明 Retain使持久卷处于释放状态,不允许新的持久卷声明回收它。整个回收过程是手动的。您需要自己删除持久卷。您可以备份

Kubernetes 状态集roling更新效果高可用性

在kubernetes中,是否可以先部署一个具有新版本的新pod,然后取下更新后的pod,并将我们预先创建的pod添加到statefulset中?当一些pod在滚动更新过程中重新创建时,可能需要很多时间,并且应用程序可能不可用,因为它需要仲裁等 你可以,使用策略类型我很难理解你的问题。我想你是在问如何在不停机的情况下部署应用程序。是吗?是的,假设我的集群中有3个节点-每个节点都有一个pod->如果我可以启动第四个pod“在侧面”并切换到它,我将节省自己升级的pod的启动时间,而这个pod没有回答

Kubernetes “为什么要这么做?”;“身份验证策略”;示例页面为';你没按预期工作吗?

文章如下: 具体地说,当我按照设置部分的说明操作时,我无法连接位于命名空间foo和bar中的任何httpbin。但是遗留的是可以的。我想正在安装的侧车代理可能有问题 这是httpbinpod yaml文件的输出(在注入istioctl kubeinject--includeIPRanges“10.32.0.0/16”命令后)。我使用--includeIPRanges,以便pod可以与外部ip通信(用于我安装dnsutils等软件包的调试目的) 下面是我收到错误sleep.legacy->http

Kubernetes吊舱自动化-在成功完成旧部署的基础上安排新部署

我正在寻找一些在Kubernetes中安排部署的帮助 我需要在成功完成旧部署的基础上安排新部署。我怎样才能在库伯内特斯做到这一点 我的第一次部署将运行3-4个小时来获取一些数据。一旦完成,我需要删除该部署并部署一个新的部署。您需要获取新的部署代码还是什么?我的意思是我无法理解原因,你可以部署你的应用程序,然后通过滚动更新策略进行更新,或者你可以使用cron作业,它将按计划启动。另外请看一下PreStop Hook Hi Nick,我将运行一个带有一些映像的部署。一旦成功完成,我需要删除现有部署,

将容器作为CronJob部署到(Google)Kubernetes引擎-如何在完成任务后停止Pod

我有一个容器,它运行一些从MySQL数据库获取的数据,并简单地在console.log()中显示结果,并且希望在GKE中将其作为cron作业运行。到目前为止,我已经在本地机器上运行了这个容器,并且已经成功地将它部署到GKE(就我所看到的没有抛出错误而言) 然而,创建的吊舱只是保持运行状态,而不是在任务完成后停止。pod是否应该在执行所有代码后自动停止,或者它们是否需要显式指令停止?如果需要,在创建后(通过Cron作业)终止pod的命令是什么 据我所知,默认情况下有大约30秒的终止宽限期,但在运行

kubernetes:在同一个pod中的另一个容器中调用命令

一个容器可以在另一个容器中调用命令吗?集装箱在同一个舱内 我需要许多命令行工具,这些工具作为映像和软件包提供。但出于某些考虑,我不想将它们全部安装到一个容器中。一般来说,不,在Kubernetes(或普通Docker)中不能这样做。您应该将两个相互连接的东西移动到同一个容器中,或者在您试图调用的东西周围包装某种网络服务(然后可能将它放在一个单独的pod中,前面有一个单独的服务) 如果您设置一个服务帐户,安装一个Kubernetes API sidecar容器,并使用Kubernetes API执

使用堡垒SSH到Kubernetes吊舱

我已经部署了谷歌云Kubernetes集群。群集只有内部IP 为了访问它,我创建了一个具有外部IP的虚拟机bastion-1 结构: My Machine -> bastion-1 -> Kubernetes cluster 与代理站的连接: $ ssh bastion -D 1080 现在使用kubectl使用代理: $ HTTPS_PROXY=socks5://127.0.0.1:1080 kubectl get pods No resources found. Kuber

Kubernetes 如何使用配置文件使Prometheus Alertmanager静音?

我用的是官方的海图,让普罗米修斯掌舵 到目前为止,它工作得很好,除了恼人的CPUThrottlingHigh警报外,它正在为许多吊舱(包括自己的普罗米修斯)发出警报。此警报为,我想暂时取消其通知 Alertmanager具有,但它是基于web的: 静默是一种简单的方法,可以使给定时间的警报静音 时间在的web界面中配置了静音 警报管理器 有一种方法可以使用配置文件使来自CPUThrottlingHigh的通知静音?我怀疑是否存在通过配置使警报静音的方法(除了将所述警报发送至/dev/null接收

Kubernetes GKE ingress在HTTP中应答,即使我的服务仅使用HTTPS

我有基于Nginx的服务,配置为只接受HTTPS。 然而,GKE ingress在HTTP中回答HTTP请求。我知道GKE Ingress不知道如何强制HTTP->HTTPS重定向,但是否有可能至少从服务返回HTTPS rules: - http: paths: - path: /* backend: serviceName: dashboard-ui servicePort: 8443 更新:我在GKE入口和我的K8S服务上配置了TSL。当请求以H

Kubernetes 在一个.yaml中创建多个持久卷

我想为我的系统动态调配3个持久卷,它们都基于我以前创建的storageClass。我的v1代码成功地完成了它的工作 v1: 我想重构这段代码,可能使用k8s可以识别的模板,因为这里唯一的变量是metadata.name。有可能吗?kubernetes本机不识别任何模板。但在将yaml传递给kubectl之前,您可以使用任何模板引擎 通常的做法是使用头盔,头盔内部使用gotpl 您的示例如下所示: {{ range .Values.volume_names }} --- apiVersion: v

Kubernetes 在kubeflow上找不到GOOGLE_应用程序_凭据

我遵循在GCP上构建kubeflow的规则 在最后一步,我陷入了“检查培训组件的权限”的困境 设置这些secretName和secretMountPath之后 kustomize edit add configmap mnist-map-training --from-literal=secretName=user-gcp-sa kustomize edit add configmap mnist-map-training --from-literal=secretMountPath=/var/

Kubernetes PriorityClass不';t将其值填充到podSpec

环境:流浪者+虚拟箱 库伯内特斯:1.14 docker 18.06.3~ce~3-0~debian 操作系统:debian stretch 我有优先课程: root@k8s-master:/# kubectl get priorityclass NAME VALUE GLOBAL-DEFAULT AGE cluster-health-priority 1000000000 false 33m <

如何将所有证书从一台服务器上的Kubernetes复制到另一台服务器上的Kubernetes?

如何将一台服务器上的所有证书从Kubernetes复制到Kubernetes 另一个 如何出口 可能的导入步骤 kubectl create secret tls {{ .Release.Name }}-ingress-tls-secret --key /tmp/tls.key --cert /tmp/tls.crt [--namespace namespace] 导入步骤后应执行哪些操作 我想在另一台服务器上看到相同的证书。kubernetes将证书存储在机密中 您只需导出秘密并将其导入到

Kubernetes:查看部署中失败容器的日志

我创建了一个容器总是失败的部署,我注意到由于重启策略,会自动创建一个新的容器,但是我无法检查失败容器的日志。有办法检查日志吗?您可以使用以下标志: -previous如果为true,则打印pod中容器的上一个实例(如果存在)的日志 例如: kubectl logs my-pod-crashlooping --container my-container --previous 也许最好在devops SE上提问?

Kubernetes Kube Proxy-将不使用IPVS proxier,因为未加载以下必需的内核模块:[ip_vs_wrr ip_vs_sh]

我已经使用IPV在CentOS 7.6服务器上安装了Kubernetes 1.15群集。重新启动服务器时,kube代理将更改为iptables模式。如果我运行modprobe-a ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack_ipv4命令并在该节点上重新启动kube代理,kube代理将以IPVS模式启动 在重新启动期间解决此问题的最佳方法是什么 谢谢 SR您是否自动标记了启动时要加载的所需模块 您可以编辑包含所需名称的文件/etc/modules(

Kubernetes k8s如何知道主机上运行的服务?

我在我的主机上运行驾驶舱,它作为systemd服务运行,同时我使用microk8s(单节点k8s) 我不需要驾驶舱web ui的反向代理,但我需要外部服务/端点k8s对象映射之类的东西。。让k8s知道这项服务 k8s不应允许使用同一端口创建另一个nodePort服务(k8s层,它不应与OS层冲突) k8s应该在iptables中处理该服务的规则 顺便说一句:驾驶舱必须作为独立应用程序直接在主机上运行 有什么想法吗? 谢谢您的意思是访问k8s集群内部的外部服务吗?在这种情况下,您将需要创建一个

Kubernetes PersistentVolume无效:规范:必需值:必须指定卷类型

我正在尝试在现有存储类名的基础上创建一个持久卷。然后我想把PVC贴在上面;使他们受到约束。运行下面的代码,将得到我想要的“sftp pv声明”,但它不绑定到我的pv(“sftp pv存储”)。它的状态是“待定” 我收到的错误消息是:“PersistentVolume“sftp pv存储”无效:规范:必需值:必须指定卷类型”。如果有人能告诉我为什么我会收到错误信息,我将不胜感激 规格: 我正在使用舵图创建PV和PVC 我使用Rancher UI查看它们是否绑定,以及PV是否生成 我使用的存储是Ce

Kubernetes 如何从YAML文件的命令部分读取环境变量?(库伯内特斯语)

我回显了我所有的env变量,它们都在那里,但当我试图从命令部分读取它们时,它们是空的 您可以将其用于命令或args字段 注意:环境变量出现在括号中,$VAR。这是在命令或args字段中展开变量所必需的 其中{argument_1}}是一个环境变量。参考下面的示例 apiVersion: v1 kind: Pod metadata: name: env-arg-demo labels: purpose: env-arg-demo spec: containers: - na

Kubernetes 为什么可以';我的服务是否将流量传递到minikube上具有指定端口的pod?

我对第5.1.1节中使用Marko Luksa的Kubernetes在行动中的命名端口的示例遇到了问题。示例如下所示: 首先-创建 我正在创建一个带有命名端口的pod,该端口运行一个Node.js容器,当它被点击时,它会以响应您点击的: apiVersion:v1 种类:豆荚 元数据: 名称:命名端口pod 标签: 应用程序:命名端口 规格: 容器: -姓名:库比亚 图片:michaellundquist/kubia 端口: -名称:http 集装箱港口:8080 还有这样的服务(注意,这是一

Kubernetes 如何将计数器添加到头盔范围

这是my values.yaml文件: options: collection: "myCollection" ttl: 100800 autoReconnect: true reconnectTries: 3 reconnectInterval: 5 现在,我尝试在我的configMap中将其转换为JSON,如下所示: options: { {{- range $key, $val := .Values.options }} {{ $key }}: {{ $val

是否可以在不更改实例组的情况下将节点添加到通过Kops创建的Kubernetes群集?

我想将节点添加到通过kops创建的Kubernetes集群中。我知道可以通过实例组中不断变化的节点数来实现这一点。但我正在寻找不同类型的解决方案,因为我已经有一些ec2实例(在同一地区),我想将它们用作Kubernetes群集的节点。我认为这是解决方案的良好开端。您可能需要确保将相同的TA应用于“新”机器,就像Kops集群上的其他TA一样。

Kubernetes从属吊舱-如何触发从属吊舱重启?

我有两个独立的pod组成一个应用程序实例(1个tomcatweb服务器和1个postgresdb)。当数据库pod重新启动时,应用程序不会与新数据库pod建立新连接,并且处于web服务器不可访问的状态(尝试保持与不存在的pod的连接?)。数据库pod重新启动后,如何触发应用程序服务器的重新启动(这可能是由于主机关闭、维护或任何其他原因) 我目前正在使用init容器与数据库服务器建立初始连接(如果数据库未启动,请不要启动app pod),这在手动/初始启动pod时效果良好。但是,当应用程序已经运行

Docker Desktop Kubernetes在本地计算机上进行身份验证

是否可以让docker desktop为主机颁发服务令牌,以便可以使用kubernetes auth方法对IDE中运行的代码进行身份验证,从而对本地kubernetes中运行的应用进行身份验证?我使用的kubernetes实例是docker desktop for Mac 用例:我已将vault本地部署到docker desktop kubernetes,并已将其配置为通过kubernetes服务令牌进行身份验证。这对于我部署到同一kubernetes集群的应用程序来说效果很好,因为它们会在容器

使用kubernetes中的traefik v2添加基本身份验证未弹出登录表单

我将按照以下步骤向treafik 2.1.6添加基本身份验证,首先创建kuberntes(v1.15.2)机密: 创建中间件: apiVersion: traefik.containo.us/v1alpha1 kind: Middleware metadata: name: basic-auth spec: basicAuth: secret: treafik-secret-name 调整traefik配置并添加我们创建的中间件: apiVersion: traefik.con

有没有办法使用Kubernetes将容器端口映射到特定的主机端口?

在docker中,我们可以使用-p标志将容器端口映射到所需的任何端口。但在kubernetes中,如果我们使用NodePort,那么我们将获得主机的端口,范围从30000开始。那么有没有办法映射到特定端口呢?您可以使用服务定义中的节点端口字段来指定节点端口的端口: 但是,节点端口将在群集中的所有节点上分配该端口 您还可以在pod容器规范本身中指定主机端口,但不建议这样做: ports: - name: http containerPort: 80

Kubernetes YAML语法-列表、词典

使用以下YAML文件: 为什么policyTypes包含列表,而metadata不包含列表 为什么端口下面有一个列表项(即协议),而端口没有 我对Kubernetes方面的东西不感兴趣,只对YAML语法感兴趣 apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: test-network-policy namespace: default spec: podSelector: matchL

获取;pod名称“;Hazelcast上具有Kubernetes自动发现的节点的值

在一个部署在Kubernetes上的基于Hazelcast的系统中,使用“服务标签自动发现”(auto discovery byservice label),我试图获取每个节点部署的Pod名称。我得到的确实是第一个节点的pod名称,但是第二个节点的服务名称。例如,octane-deployment-blue-123c44bfb-xyzab(pod),然后10-20-30-100.my service.svc.cluster.local(service) 我正在通过 HazelcastInstan

Kubernetes 让';s加密Minikube的https证书

下面是一些关于如何为Minikube入口设置https证书的有用教程 我注意到的是: 他们总是使用ngrok付费服务和隧道技术来拥有一个公共域,由Let's Encrypt认证 否则,我们不使用Encrypt,作为本地Minikube发行版的一个示例,将使用自签名证书 我的问题是:有没有办法在非付费版本中使用本地Minikube加密? 例如,使用Katacoda或其他免费会话工具?我不知道有任何组织会在不验证域的情况下向您颁发证书 您需要了解,为了获得证书,全局证书颁发机构(CA)需要验证您

Kubernetes 准备就绪探测失败:超时:无法在1s内连接服务:8080

我正在尝试使用minikube在我的开发机器上运行的单节点Kubernetes集群上构建和部署microservices映像。我正在使用Google的cloud native microservices演示应用程序在线精品店来了解Kubernetes、Istio等技术的使用 链接到github回购: 我已经按照所有安装过程在本地构建和部署了微服务,并且能够通过浏览器访问web前端。然而,当我点击任何产品图片时,我会看到这个错误页面 关于使用kubectl get pods进行检查 我意识到我的一

Kubernetes AWS EKS上nginx入口控制器的多个副本 nginx ingress controller部署时,是否存在将副本1扩展到副本3的问题 因此,控制器已经创建了AWS经典ELB,具有许多副本-我们将使用相同的(单个ELB)还是每个POD一个(随着POD数量的增加)

我询问的原因是,我在基于EC2spot的AWS EKS集群内运行控制器,当EC2spot实例被AWS中断时,我会停机 是否存在将副本1扩展到副本3的问题 nginx入口控制器部署 Nginx ingress controller监视kubernetes API服务器公开的少数资源,如服务,端点等。当您扩展副本数量时,可能会给kubernetes API服务器带来更大的压力,因为现在将有3个副本观看,而不是1个。但随着2个副本的增加,可能无法观察到,但我建议设置一些监控来观察任何影响 因此,控制器

kubernetes服务中可以公开的端口数量有限制吗?

我正在尝试公开200多个端口上的服务。以下是示例服务yaml: apiVersion: v1 kind: Service metadata: name: multiport-server-large-port spec: type: NodePort selector: app: multiport-server-large-port ports: - port: 49152 name: tcp-49152 - port: 49153 name:

访问kubernetes仪表板时出现MSG_LOGIN_UNAUTHORIZED_错误

我对库伯内特斯还不太熟悉。直到一个月前,我还能够访问kubernetes仪表板,但由于某种原因,有一天我遇到了一个问题:当上传配置文件后按下“登录”按钮时,什么也没有发生。 我进入了chrome中的开发者工具,在“配置”中看到了下一条错误消息: 另外,在我运行kubectl proxy的CMD窗口中,行: 2020/10/20 15:33:54 http:proxy错误:上下文已取消 每次我按下按钮都会显示。 我已经检查了我的代理配置是否正确,并且我的同事能够访问仪表板服务。该版本为1.16,从

如何将域的自定义子域重定向到以子域为参数/路径的单个kubernetes服务?

我有一个多租户应用程序的要求,其中每个租户都应该由子域分隔,如下所示 t1.example.com t2.example.com t3.example.com . . . tn.example.com 因此,在这种情况下,可能会有任意数量的租户。我有一个名为myservice的Kubernetes后端服务,负责处理所有这些请求,需要根据它们的子域识别它们。 e、 g.如果请求来自tn.example.com,则需要将其重定向到->myservice/tn t2.exam

Kubernetes Istio/特使边缘代理特使过滤器(1.9.0)

我正在尝试将一些配置应用到我的Istio 1.9.0部署中,并且我正在努力获得一个成功的EnvoyFilter。所有入口流量在我申请后返回503 使用istioctl我看到配置已应用,代理状态似乎正常…有什么想法吗 --- apiVersion: networking.istio.io/v1alpha3 kind: EnvoyFilter metadata: name: connection-control namespace: istio-system spec: configPa

Kubernetes 在Traefik中添加CNAME重定向

我有一个应用程序托管在K8S集群中。我使用Traefik将用户从外部路由到我的应用程序,并将入口路由到集群内部 有一个我们可以访问应用程序的主域,我想添加另一个将重定向到主域的域 domaine-b.com IN CNAME domaine-a.com. 我所做的只是将新域添加到traefik的静态配置文件中 [[entryPoints.websecure.http.tls.domains]] main = "domaine-a.com" sans = [&

Kubernetes删除的pod IP地址由rabbitmq引用,rabbitmq仍在接受消息

我在kubernetes上运行RabbitMQ作为服务,并且我有多个微服务,它们从RabbitMQ获取寄存器并使用消息 服务正在多节点群集中运行 我已使用Bitnami helm图表8.6.1安装了带有单个副本的RabbitMQ 每个服务(使用者)有2个副本,因此rabbitmq上的该事件必须有atmost 2使用者 在K8s上部署新容器(使用者)后,已经终止的旧容器(使用者)在RabbitMQ连接上仍然可见,并且该cosumer仍在接受消息,并且由于该旧pod代码被执行(该旧容器在2021年4