Tag: kubernetes

为什么在这个Kubernetes部署中出现ErrImagePull错误?

我正在尝试使用Minikube,Docker Registry和演示节点项目来创build本地Kubernetes部署。 我做的第一件事是安装Docker v 1.12.3,然后是Minikube v0.12.2。 然后通过运行这个命令创build了一个Docker Registry容器(通过本教程 ,只运行下面的第一个命令) docker run -d -p 5000:5000 –name registry registry:2 接下来我运行这个minikube命令来创build一个本地kubernetes集群: minikube start –vm-driver="virtualbox" –insecure-registry="0.0.0.0:5000" 我的项目结构如下所示: . ├── Dockerfile └── server.js 和我的Dockerfile看起来像这样: FROM node:7.1.0 EXPOSE 8080 COPY server.js . CMD node server.js 然后我build立了自己的docker镜像并将其推送到我的私有存储库: docker build -t hello-node . docker tag hello-node localhost:5000/hello-node docker push localhost:5000/hello-node 然后我试着用这个命令运行一个部署: kubectl run […]

Docker上的Kubernetes使用空的serviceaccount创build容器,并且不会导致容器崩溃并重新启动

仍然遇到类似的问题1.3.0和高达1.4.0-alpha.0 在我的情况下(基于docker的设置),trusty或kubedns将从api服务器获得未经授权的许可。 奇怪的是我看到这些秘密不在实例内部,在/var/run/secrets/kubernetes.io/serviceaccountpath下 [root@ … ]# kubectl exec -it kube-dns-v13-htfjo ls /bin/sh / # / # ls /var/run/secrets/kubernetes.io/serviceaccount / # 虽然看起来他们在节点和代理实例中 tmpfs on /var/lib/kubelet/pods/3de53b0c-45bb-11e6-9f03-08002776167a/volumes/kubernetes.io~secret/default-token-8axd8 type tmpfs on /var/lib/kubelet/pods/3de5591e-45bb-11e6-9f03-08002776167a/volumes/kubernetes.io~secret/default-token-8axd8 type tmpfs on /var/lib/kubelet/pods/f29f35c7-45cc-11e6-9f03-08002776167a/volumes/kubernetes.io~secret/default-token-ql88q type 删除密码并删除豆荚,然后重新创build它们不起作用 卸载并删除文件夹后重新启动群集也不起作用 自然这导致kubedns无法启动。 在下面logging I0709 09:04:11.578816 1 dns.go:394] Received DNS Request:kubernetes.default.svc.cluster.local., exact:false I0709 09:04:11.578873 1 dns.go:427] records:[], retval:[], path:[local cluster svc default […]

负载平衡工作不正常

我们想testingkubernetes负载均衡。 所以我们创build了一个2节点的集群,它运行了我们容器的6个副本。 容器运行Apache2服务器和PHP,如果我们浏览hostname.php,它将打印Pod名称 群集细节: 172.16.2.92 – 主人和奴才172.16.2.91 – 奴才 RC和服务细节: 前端-controller.json: { "kind":"ReplicationController", "apiVersion":"v1beta3", "metadata":{ "name":"frontend", "labels":{ "name":"frontend" } }, "spec":{ "replicas":6, "selector":{ "name":"frontend" }, "template":{ "metadata":{ "labels":{ "name":"frontend" } }, "spec":{ "containers":[ { "name":"php-hostname", "image":"naresht/hostname", "ports":[ { "containerPort":80, "protocol":"TCP" } ] } ] } } } } 前端-service.json: { "kind":"Service", "apiVersion":"v1beta3", "metadata":{ "name":"frontend", "labels":{ […]

挂载gcePersistentDisk kubernetes卷是非常缓慢的

我启动一个kubernetes复制控制器。 当此复制控制器中的单个容器中的对应容器具有指定的gcePersistentDisk ,Pod将启动非常慢。 5分钟后,吊舱仍处于Pending状态。 kubectl get po会告诉我: NAME READY STATUS RESTARTS AGE app-1-a4ni7 0/1 Pending 0 5m 如果没有gcePersistentDisk ,吊舱在最多30秒内Running 。 (我使用的是10 GB的Google云端存储磁盘,并且我知道这些磁盘的容量较低,但我不确定这是否是问题。) 这可能是什么原因?

kubernetes mysql chown操作不允许

我目前正在试验Kubernetes,并且已经在本地运行的ESX下安装了一个小型集群。 我用Fedora使用Project Atomic安装了两个从节点和一个主节点。 群集都安装正常,似乎正在运行。 不过,我首先想要启动一个MySQL容器,但不pipe我尝试什么,我都无法运行它。 apiVersion: v1 kind: Pod metadata: name: mysql labels: name: mysql spec: containers: – resources: limits : cpu: 0.5 image: mysql:5.6 name: mysql env: – name: MYSQL_ROOT_PASSWORD value: myPassw0rd ports: – containerPort: 3306 name: mysql volumeMounts: – name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: – name: mysql-persistent-storage nfs: server: 10.0.0.2 path: "/export/mysql" 对于卷我已经尝试了各种解决scheme,我尝试使用永久卷和没有索赔。 […]

Kubernetes Jenkins插件 – 奴隶总是离线

我试图使用Jenkins / Kubernetes插件与Jenkins协调Docker Slaves。 我正在使用这个插件: https : //github.com/jenkinsci/kubernetes-plugin 我的问题是,所有的奴隶离线,所以作业无法执行: 我已经在我的本地盒子上使用minikube,以及由我们的ops组托pipe的K8集群上尝试了这一点。 我已经尝试了jenkins1.9和jenkins2.我总是得到相同的结果。 屏幕截图来自Jenkins 1.642.4,K8 v1.2.0 这里是我的configuration…请注意,当我点击“testing连接”我成功了。 另外请注意,我不需要任何凭据(这是唯一的区别,我可以看到与logging的例子)。 jenkins日志反复显示以下内容: Waiting for slave to connect (11/100): docker-6b55f1b7fafce Jul 20, 2016 5:01:06 PM INFO org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud$ProvisioningCallback call Waiting for slave to connect (12/100): docker-6b55f1b7fafce Jul 20, 2016 5:01:07 PM INFO org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud$ProvisioningCallback call Waiting for slave to connect (13/100): docker-6b55f1b7fafce Jul […]

Kubernetes Pod创build速度

我们希望在我们的集群上快速启动豆荚,以处理“一次性”的任务(每次任务每次运行都有一个新的豆荚)。 目前,从Pod创buildAPI调用 – >完成需要大约10-15秒。 这是在AWS上运行的3x m3 xlarge,已经被caching的图像(我假设,因为我在同一个节点上使用两次相同的图像)。 我们正在运行与restartPolicy =从不,因为他们是一个任务。 我已经试过用imagePullPolicy(=从不)和资源选项摆弄无济于事。 在Kubernetes将它交给Pod之后,似乎在“Running”阶段发生了10秒延迟。 我可以确认操作本身非常快:在Docker上本地运行只需要大约0.5秒,包括操作。 有什么办法可以加速吗?

如何从Kubernetes窗格中运行curl命令

我有以下问题: 1:我使用以下命令login到Kubernetes窗格: – ./cluster/kubectl.sh exec my-nginx-0onux -c my-nginx -it bash 'ip addr show' 命令显示其分配的pod的ip。 由于pod是一个逻辑概念,我假设我login到一个docker容器,而不是一个pod,在这种情况下,pod ip是相同的docker容器ip。 这种理解是否正确? 2:从一个Kubernetes节点,我做sudo docker ps docker sudo docker ps ,然后执行以下操作: – sudo docker exec 71721cb14283 -it '/bin/bash' 这不工作。 有人知道我在做什么错吗? 3:我想访问我创build的nginx服务,使用curl从pod内部。 我怎样才能在这个容器或容器内安装curl从内部访问服务。 我想这样做来了解networking连接。

哪种方法更适合发现容器的准备情况?

这个问题已经讨论了很多次了,但是我想听听一些使用下面每种方法的最佳实践和真实案例: devise能够检查相关服务健康的容器。 简单的脚本对于这种开发容器来说可能是有用的,但不适合更复杂的部署。 例如,数据库可以接受连接,但迁移尚未应用。 使容器能够在Consul / etcd中发布自己的状态。 所有从属服务将轮询某个包含所需服务状态的端点。 看起来不错,但似乎多余,不是吗? 通过外部调度程序pipe理容器的启动顺序。 在交付过程中,上述哪种方法在Swarm / Kubernetes /等缺席/在场协调员的情况下更可取?

如何build模Docker / Kubernetes的PostgreSQL故障转移群集?

我还在包围着Kubernetes,而且应该如何工作。 目前,我正在努力了解如何使用stream式复制,扩展和自动故障转移/故障回复( pgpool-II , repmgr ,select毒药)来模拟PostgreSQL群集。 这个方法的主要问题是PostgreSQL实例的双重属性,configuration方面 – 它是一个主或冷/暖/热备用。 如果我增加副本的数量,我希望他们都作为备用,所以我想像创buildpostgresql-standby复制控制器与postgresql-master复制控制台分开。 不过,我也希望其中一个备用数据库在当前主数据库closures的情况下成为主数据库,所以它毕竟是一个常见的postgresql复制控制器。 我到目前为止唯一的想法是将复制configuration放在外部卷上,并pipe理容器外部的状态和状态更改。 (在PostgreSQL的情况下,configuration可能已经在其data目录中的一个卷上,这本身显然是我希望在卷上的东西,但这不是重点) 这是正确的方式,还是有其他更清洁的方式吗?