Articles of kubernetes

debuggingKUBELET不启动

我正在使用kubeadm尝试设置一个开发人员。 我遇到了一个问题,即kubelet的健康检查失败。 我正在寻找如何debugging的方向。 运行build议debugging的命令( systemctl status kubelet )没有看到错误的原因: kubelet.service – kubelet: The Kubernetes Node Agent Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/kubelet.service.d └─10-kubeadm.conf Active: activating (auto-restart) (Result: exit-code) since Thu 2017-10-05 15:04:23 CDT; 4s ago Docs: http://kubernetes.io/docs/ Process: 4786 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CGROUP_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS (code=exited, status=1/FAILURE) Main PID: […]

Docker / Core OS上的SAML / OpenID身份validation

我有一套运行Core OS / Docker / Docker Swarm的服务器。 我有我的用户在SAML / OpenID SSO服务器。 我希望这些用户能够在我的Core OS集群上运行Docker容器。 如何将SAML / OpenID用户authentication到Docker / Docker Swarm中? 有没有插件? 如果我添加Kubernetes,Kubernetes是否具有SAML / OpenID身份validation?

在Kubernetes容器中无法访问networking

我试图build立一个实验性的kubernetes集群,看看是否值得将我们当前的mesos集群迁移到kubernetes。 既然我们提供了我们自己的CoreOS服务器,我正在尝试一个裸机。 问题是kubernetes启动的容器无法访问networking( 例子 ),而手动启动的容器确实有工作networking访问( 示例 )。 对于我select印花布的networking,并按照这里的说明。 我非常有信心,因为我能够跨主机ping容器,而不是由Kubernetes启动时,白板布局是正确的。 容器的暂停容器得到一个分配的地址,正如在这里可以看到的,然而从容器内部networking是不可达的,同一个容器中的其他容器现在显示进行docker检查的networkingconfiguration(我认为这是正确的,因为他们共享暂停容器networking)。 有没有人有什么问题的想法,或如何进一步debugging呢?

Kubernetes集群下来

当在Kubernetes中运行以下命令集群时,出现以下错误: KUBERNETES_PROVIDER = ubuntu ./kube-down.sh rm:无法删除'/var/lib/kubelet/pods/16981b98-a3bb-11e5-99fb-00505622b20d/volumes/kubernetes.io~secret/default-token-0i2n6':设备或资源忙 我试图强行删除它,但也没有被删除。

Kubernetes,法兰绒和揭露服务

我有一个kubernetes设置运行很好,但我似乎无法公开外部服务。 我在想我的networking设置不正确: kubernetes服务地址:–service-cluster-ip-range = 172.16.0.1 / 16 法兰绒networkingconfiguration:etcdctl get /test.lan/network/config {“Network”:“172.17.0.0/16”} docker子网设置:–bip = 10.0.0.1 / 24 主机节点IP:192.168.4.57 我已经运行了nginx服务,并试图像这样暴露它: [root@kubemaster ~]# kubectl get pods NAME READY STATUS RESTARTS AGE nginx-px6uy 1/1 Running 0 4m [root@kubemaster ~]# kubectl get services NAME LABELS SELECTOR IP(S) PORT(S) AGE kubernetes component=apiserver,provider=kubernetes <none> 172.16.0.1 443/TCP 31m nginx run=nginx run=nginx 172.16.84.166 9000/TCP […]

容器registry不显示云存储桶泊坞窗图像

我是一个项目的所有者,并且有一个同事为项目创build了所有的Docker镜像,这些镜像可以在Google Developer's Console的Container Registry下find。 login时可以在registry中查看图像,但是我什么都看不到。 更奇怪的是,同事无法看到Google Cloud Storage Bucket中的任何图像,但是我可以看到所有的Docker镜像。 我们两个人都应该看到的是,registry和Cloud Bucket之间没有排队。 有没有人遇到过这个?

AWS EC2上的Kubernetes – 修改缩放组中的max-pods

我们在Amazon AWS上的Kubernetes上运行容器。 这个集群是通过一套kube-up脚本创build的。 一切准备正确,工作正常。 然而,我们碰到了一个障碍 – 我们相当大的服务器c4.xlarges只能运行40个豆荚。 这对我们来说是一个小数目,因为我们正在运行许多小的豆荚,一些很less使用。 有没有办法提高盐主或启动configuration这个限制? 这样做的最佳途径是什么? 谢谢。

Linux虚拟服务器:NAT返回path

我试图在我的Kubernetes前设置一个LVS负载均衡器:Calico用作容器networking,因此每个容器在其主机中都有自己的networking接口。 外部IP,路由和路由规则是使用keepalived的pipe理器。 由我的主机提供商分配的每个子网都有自己的路由器。 服务器有两个物理接口连接到Internet。 外部IP在第二个接口上可用。 configuration是这样的:第一个接口有一个全局IP地址和一个默认路由。 第二个接口有一个私有IP。 它也有我的托pipe服务提供商的所有额外的IP。 由于所有来自附加IP的数据包都必须通过特定的默认网关进行路由,因此我添加了路由表和规则。 到目前为止,一切都按预期工作。 为了使Kubernetes服务在IP中可用,我在一些节点上添加了LVS。 我的问题是这样的:从互联网包到达我的Kubernetes豆荚,但他们的答案不回到互联网。 数据包消失在我的Kubernetes节点的某处。 来自我的pod的应答数据包使用pod IP作为源,并且必须由NAT重写。 当看看iptables的规则,我没有看到LVS的。 他们在哪? LVS NAT规则何时执行? 他们绑定到一个接口? 转发path和接口在NAT应答分组完成前是否已经决定?

服务将所有stream量分派到由复制控制器创build的POD之一

我有一个复制控制器创build多个POD。 在每个POD中,有一个容器运行一个应用程序。 现在在容器中,它可以调用kubernetes API如下。 KUBE_TOKEN=$(</var/run/secrets/kubernetes.io/serviceaccount/token) curl –silent –insecure –header "Authorization: Bearer $KUBE_TOKEN" \ https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/namespaces/$POD_NAMESPACE/pods/$POD_NAME POD_NAME是POD的名称; POD_NAMESPACE是POD的命名空间 包含的应用程序实例组成一个集群。 他们select其中一个应用程序实例作为主控,另外一个是从主控实时复制数据的从属。 当主实例失败时,另一个从实例将被提升为主。 当容器中的应用程序被提升为主人时,我希望主应用程序实例调用kubernetes API,以便所有stream量都进入此POD /容器。 { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "my-cluster" }, "spec": { "ports": [{ "port": 33379, "targetPort": 33379 }], "type" : "None", "selector": { "name": "<POD_NAME>" } } } 我指定了POD_NAME作为select器,但该服务找不到任何POD。 我怎样才能configuration服务,使所有的stream量去那个POD?

Kubernetes升级回滚机器types

我的kubernetes群集正在Google Container Engine中运行。 一次之前,我通过使用不同的实例模板更改机器types。 我正在使用以下命令升级kubernetes群集 gcloud container clusters upgrade CLUSTER_NAME –master gcloud container clusters upgrade CLUSTER_NAME –cluster-version=1.2.1 升级之后,看起来NODE被回滚到先前的实例模板。 如何在不丢失实例模板的情况下升级集群?