Articles of kubernetes

Google容器引擎集群升级失败

我们有一个在Google Container Engine上运行的Kubernetes群集。 Google云端控制台的容器群集部分显示群集api版本为1.06。 我试着做滚动更新升级到最新的api版本(1.1.1目前是最新的可用)。 我跑了: gcloud container clusters upgrade my-cluster-name并收到一个错误(标识符被删除) (gcloud.container.clusters.upgrade)操作[https://container.googleapis.com/v1/projects/'status:StatusValueValuesEnum(DONE,3)statusMessage:u'Error升级节点:群集节点没有及时更新。 滚动ID为“1”的更新最后有状态:“2/3实例更新;错误:CONDITION_NOT_MET(太多(1> 0)实例失败。 targetLink:u'https://container.googleapis.com/v1/projects/'zone:u'1'>]以错误结束:错误升级节点:集群节点没有及时更新。 滚动更新ID为“1”,最后状态为:“2/3实例更新;错误:CONDITION_NOT_MET(太多(1> 0)实例失败。 我试着再次运行该命令,并收到此错误: (gcloud.container.clusters.upgrade)操作[https://container.googleapis.com/v1/projects/1'status:StatusValueValuesEnum(DONE,3)statusMessage:u'Error升级节点:滚动更新期间发生问题“。 targetLink:u'https://container.googleapis.com/v1/projects/1'zone:u'1'>]以错误结束:升级节点出错:滚动更新期间出现问题。 有任何想法吗?

Google容器引擎/ Kubernetes 1.1.1 – 服务LoadBalancer未被创build

我在Google容器引擎上有一个现有的Kubernetes集群(运行api版本1.0.7)。 当我使用LoadBalancertypes创build了2个服务时,gke创build了必要的转发规则来暴露它们。 我改变了一个静态的IP地址,并保持一个短暂的。 我试图迁移到一个新的群集(api版本1.1.1),并创build了我的服务,但转发规则尚未创build。 当我描述服务时,我看到以下错误: CreatingLoadBalancerFailed创build负载均衡器(将重试)时出错:无法为服务开发/ my-service创build负载均衡器:等待创build静态IP地址时出现错误:googleapi:错误403:超出配额“STATIC_ADDRESSES”。 限制:1.0 我知道Google云端平台上有一个静态IP地址的限制,这是否意味着我现在只能在GKE上向公众networking提供1个服务? 或者有什么办法可以解决这个问题? 我需要至less2个外部地址(只有1个是为了生产,所以限制1个静态IP对我来说不是问题)

从远程服务器安全地使用kubectl访问kubernetes(通过谷歌容器引擎托pipe)

您好,我遇到了试图访问我的Kubernetes集群使用谷歌容器引擎托pipe的问题。 我想从外部/远程服务器使用kubectl(Circle CI)我安装了gcloud和kubectl,并且可以不安全地访问我的集群 kubectl get pods –server="https://ENDPOINT_IP" –username="USERNAME" –password="PASSWORD" –insecure-skip-tls-verify=true 我希望能够使用gcloud容器集群概述的“显示凭据”页面中提供的证书安全地访问它。 所以我创build了一个ca.crt与这个证书string,并通过–certificate-authority标志传递它,但我得到一个错误: error: couldn't read version from server: Get https://ENDPOINT_IP: x509: certificate signed by unknown authority 我如何获得我的证书签名? 非常感谢,安迪

OpenShift节点没有连接到映像registry

我configuration了openshift,并且在docker-register启动的主机上一切正常。 当我添加新的节点,我尝试部署容器,我有这样的错误日志: E0519 10:51:38.574152 2135 pod_workers.go:138] Error syncing pod 083b958e-1dc0-11e6-8ca2-525400c36a07, skipping: failed to "StartContainer" for "testapp4" with ImagePullBackOff: "Back-off pulling image \"172.30.236.174:5000/test/testapp4@sha256:64c3dc4cb983986a1dd5a7979f03f449b089f4baaf979b67363a92aac43e49cd\"" E0519 11:00:09.099712 2098 pod_workers.go:138] Error syncing pod 5d3c48a1-1dd2-11e6-a164-525400c36a07, skipping: failed to "StartContainer" for "testapp4" with ErrImagePull: "API error (500): Get http://172.30.236.174:5000/v2/: dial tcp 172.30.236.174:5000: getsockopt: no route to host\n" 我猜是问题是新的节点不是“看到”在其他节点上部署的docker-registry地址172.30.236.174。 我应该做更多的新节点(我刚刚开始与节点configurationopenshift)?

GCE上的Kubernetes随机停止工作

所以最终会发生什么,一切都会正常工作,有时几天。 然而,当我执行我的代码的部署(全部包含在它自己的Docker容器中,并且存储在Dockerhub上的图像)时,它会导致Kubernetes崩溃,从而导致其他一切崩溃。 我一直无法找出任何的韵律或理由。 而且大多数情况下,我还没有find任何有助于解决问题的方法。 通常,无论出于何种原因,它都会重新开始工作 – 尽pipe我知道至less一次删除整个实例组并重新开始。 哪些工作。 现在,当我进行部署时,我所做的就是运行kubectl set image deployment命令。 在大多数情况下,只有一次奇怪的事情发生。 现在,更具体地说,奇怪的是,如果我尝试去https://<master node>/ui我会得到这样的错误: { "kind": "Status", "apiVersion": "v1", "metadata": {}, "status": "Failure", "message": "no endpoints available for service \"kubernetes-dashboard\"", "reason": "ServiceUnavailable", "code": 503 } 这是kubectl cluster-info的输出 Kubernetes master is running at https://104.198.207.42 GLBCDefaultBackend is running at https://104.198.207.42/api/v1/proxy/namespaces/kube-system/services/default-http-backend Heapster is running at https://104.198.207.42/api/v1/proxy/namespaces/kube-system/services/heapster KubeDNS […]

更多的节点vs更好的CPU – 哪种情况更好?

我现在试图通过使用kubernetes的Google Container Engine在nginx上部署node.js应用程序。 但是,生产力最低但最便宜的CPU f1-micro要求您在群集中至less使用3个节点。 g1-small ,下一个最便宜的CPU让你从你的集群中的1个节点开始。 但是,我不明白我应该走哪条路。 具体来说,我想问一下在更多的节点和更好的CPU之间的两个选项哪个更好? 我知道更多的节点在节点失败的情况下更好,但是除此之外,我不知道应该采取哪种节点。 我的应用程序非常简单,只有一个node.js应用程序使用HTTPS,nginx和MySQL,它们将被放入一个pod中。 还是一个集群只使用一个在GKE中无用的节点? 什么样的任务可以比另一个做得更好?

什么是Kubernetes容器创build?

更新Kubernetes RollingUpdate部署时, kubectl get pods显示一些在转移到“ Running之前在ContainerCreating状态中花费几分钟的窗格。 不幸的是, 关于pod状态的官方文档并没有将其作为logging的状态。 即使是kubernetes codebase 也只有两个提到的术语 ,并没有任何解释性的评论。 我已经对滚动更新部署configuration值 ( maxUnavailable和maxSurge )和探针configuration ( initialDelaySeconds )进行了一些调整,我不确定这些值影响的容器启动时间是否是ContainerCreating或其他状态的一部分。

Google云容器生成器超时

Google云容器生成器API 文档说,您可以通过API设置超时。 我们的构build是由webhooks触发的,这意味着API对我们来说是不合适的。 有没有办法在自动触发的构build上设置构build超时?

GCE:健康检查和活力探测

为networking负载均衡创build目标池时,会有一个health check选项。 在容器规范中还有一个名为livenessProbe的属性。 活性探测器检查configuration的容器是否仍在运行。 如果活性探针失败,那么kubelet将杀死容器,这将受到其重启策略的限制。 通过configurationpodconfiguration的template.spec.containers.livenessprobe节来设置活性检查。 当容器configurationlivenessProbe时,健康检查是否不必要? 据我所知,如果容器停机,POD将自动重新启动。 在这种情况下,不需要进行健康检查。 NODE是怎样的呢? 据我所知,kubernetes将在另一个NODE中启动POD,这意味着POD将会重新启动。 在我看来,无论如何,当livenessProbe被configuration时,健康检查是不必要的。

OpenShift Origin和Ceph持久卷

我已经从最新的安装安装了OpenShift Origin。 (CentOS 7 – 3名硕士和7个节点) [root@master-1 ~]# openshift version openshift v1.1.0.1-1-g2c6ff4b kubernetes v1.1.0-origin-1107-g4c8e6f4 etcd 2.1.2 我正试图通过rbd插件创buildCEPH持久存储。 我正在工作Ceph集群,我已经从文档中关注了ceph的官方指南: https://docs.openshift.org/latest/install_config/persistent_storage/persistent_storage_ceph_rbd.html 我可以创buildpersistentVolume和persistentVolumeClaim没有问题,但是当kubernetes尝试装入卷时,它会报告此错误: FailedMount {kubelet node-4} Unable to mount volumes for pod "php55-rzat2_xyz": unsupported volume type Pod FailedSync {kubelet node-4} Error syncing pod, skipping: unsupported volume type 我已经在所有节点上安装了ceph , ceph-common和ceph-fuse软件包(当然,我也将它安装在主站上)。 persistentVolume按预期由persistentVolumeClaim声明。 pvconfiguration文件: apiVersion: v1 kind: PersistentVolume metadata: name: […]