Tag: kubernetes

如何代理Docker容器中运行的一个dotnet核心应用程序的每个请求

我正努力从一个web代理运行在docker上的容器代理http请求我的http调用。 我已经通过代理使用bash成功达到了所需的端点 docker exec -i -t 665b4a1e17b6 /bin/bash 和 http_proxy=http://exampleProxy:7777 curl -s http://endpoint 现在我想从在同一个容器上运行的应用程序中重新创build它 我已经尝试了以下内容: dotnet核心代理 loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); app.UseMvc().RunProxy(new ProxyOptions { Scheme = "http", Host = "example", Port = "7777" }); 在创build容器时设置http_proxy环境variables export http_proxy=http://example:7777 使用HttpClientHandler var handler = new HttpClientHandler { Proxy = new WebProxy("http://example:777) }; var client = new HttpClient(handler); etc…. 任何人都可以想到其他方式来设置代理? 或者有关如何debugging的任何build议?

如何使用kubeadm(k8s 1.4)部署Kubernetes nginx控制器?

AWS + Kubeadm(k8s 1.4)我尝试了以下README: https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx 但似乎没有工作。 我懒洋洋地问了一句,看来这些洋芋已经过时了,我不得不修改这些 首先我使用在git上find的yaml部署了default-http-backend: https://github.com/kubernetes/contrib/blob/master/ingress/controllers/nginx/examples/default-backend.yaml 接下来,入口RC我不得不修改: https://gist.github.com/lilnate22/5188374 (注意改变path到healthz以反映default-backend以及端口改变为10254 ,这根据松弛显然是需要的) 一切正常运行良好kubectl get pods我看到入口控制器kubectl get rc我看到1 1 1的入口rc 然后我部署简单的echoheaders应用程序(根据git自述): kubectl run echoheaders –image=gcr.io/google_containers/echoserver:1.4 –replicas=1 –port=8080 kubectl expose deployment echoheaders –port=80 –target-port=8080 –name=echoheaders-x 接下来我创build了一个简单的入口: apiVersion: extensions/v1beta1 kind: Ingress metadata: name: test-ingress spec: backend: serviceName: echoheaders-x servicePort: 80 describe ing和describe ing都是一个好兆头: Name: test-ingress Namespace: default […]

如何编写一个kubernetes podconfiguration来启动两个容器

我想创build一个包含2个容器的kubernetes容器,两个容器都有不同的图像,所以我可以将两个容器一起启动。 目前我已经尝试了以下configuration: { "id": "podId", "desiredState": { "manifest": { "version": "v1beta1", "id": "podId", "containers": [{ "name": "type1", "image": "local/image" }, { "name": "type2", "image": "local/secondary" }] } }, "labels": { "name": "imageTest" } } 但是,当我执行kubecfg -c app.json create /pods我得到以下错误: F0909 08:40:13.028433 01141 kubecfg.go:283] Got request error: request [&http.Request{Method:"POST", URL:(*url.URL)(0xc20800ee00), Proto:"HTTP/1.1", ProtoMajor:1, ProtoMinor:1, Header:http.Header{}, B ody:ioutil.nopCloser{Reader:(*bytes.Buffer)(0xc20800ed20)}, […]

如何构build一个从Kubernetes集群之外的机器传递文件的附属容器?

我有一个noob问题。 如果我正在使用位于主机上的文件夹执行某些操作的Docker镜像,应该在kubernetes集群中的哪个文件夹中find该文件夹​​? 我可以用docker做这个,因为我知道我的主机文件系统在哪里,但是当我在一个kubernetes集群上时,我迷路了。 其实我不知道这是不是最好的办法 但是我想要做的是build立一个PHP后台开发环境。 因为我想要的是每个人都可以用他们自己的文件 (在他们的计算机上)运行一个容器环境,我试图build立一个边车容器,所以当启动容器我可以将文件传递到PHP容器。 问题是我运行kubernetes为我的公司使用stream浪(coreos + kubernetes)解决scheme来构build开发环境,因为我们现在没有云服务,所以我不能使用persiten磁盘。 我尝试使用NFS,但是对于我所需要的,似乎太多了(只是将一些信息传递给pod,而不pipe我在哪里的PC)。 另外我尝试在Kubernetes中使用hostPAth,但问题是,我想连接到容器的机器位于kubernetes集群之外(Vagrant + CoreOS + Kubernetes,所以我试图暴露一些容器到公共IP地址,但是我不能了解如何将文件(位于群集外部的计算机中)过滤到容器中。 感谢您的帮助,感谢您的意见。

由未知权威Kubernetes签署的x509证书

我在https://coreos.com/kubernetes/docs/latest/getting-started.html中描述了在coreos中configurationKubernetes集群的2个节点。 两台服务器都在同一个networking中。 但是我得到:x509:在工作中运行kubelet时, 由未知权限签名的证书(可能是因为“crypto / rsa:verification error”而尝试validation候选权限证书“kube-ca”) 。 我在文档中讨论过在两台服务器上正确configurationTLS文件。 主节点工作正常。 而kubectl能够在主人身上发射容器和豆荚。 问题1:何解决这个问题? 问题2:有没有办法configuration没有TLS证书的群集? Coreos version: VERSION=899.15.0 VERSION_ID=899.15.0 BUILD_ID=2016-04-05-1035 PRETTY_NAME="CoreOS 899.15.0" Etcd conf: $ etcdctl member list ce2a822cea30bfca: name=78c2c701d4364a8197d3f6ecd04a1d8f peerURLs=http://localhost:2380,http://localhost:7001 clientURLs=http://172.24.0.67:2379 主人:kubelet.service: [Service] ExecStartPre=/usr/bin/mkdir -p /etc/kubernetes/manifests Environment=KUBELET_VERSION=v1.2.2_coreos.0 ExecStart=/opt/bin/kubelet-wrapper \ –api-servers=http://127.0.0.1:8080 \ –register-schedulable=false \ –allow-privileged=true \ –config=/etc/kubernetes/manifests \ –hostname-override=172.24.0.67 \ –cluster-dns=10.3.0.10 \ –cluster-domain=cluster.local Restart=always RestartSec=10 [Install] WantedBy=multi-user.target […]

在Kubernetes,OpenShift,Docker Swarm和Docker DataCenter部署工具中哪一个都有自动回滚?

在Kubernetes,OpenShift,Docker Swarm和Docker DataCenter部署工具中,如果发生任何故障,都会自动回滚?

如何在kubernetes集群中通过SSH连接到Docker容器?

我对Google云平台和Docker相当陌生,并且设置了一个节点集群,制作了一个Dockerfile来复制一个repo,并在一个公共端口上运行一个Clojure REPL。 我可以从我的IDE连接到它,并与我的代码玩,真棒! 然而,REPL应该通过SSH隧道,但这里是我的问题开始。 我无法find一个合适的地方SSH进入修改的Docker运行REPL的回购: 暴露的IP只暴露了REPL服务(正确的kubernetes术语?),并且不允许我进入SSH。 集群主控端点也没有,即使我已经按照Adding or removing SSH keys for all of the instances in your project部分中的Adding or removing SSH keys for all of the instances in your project的Adding or removing SSH keys for all of the instances in your project ,但它给了我一个公钥错误。 我想通过SSH编辑源文件,但我需要访问docker代码回购。 我不知道如何继续。 我知道这不是一个典型的部署应用程序的方式,所以我甚至不确定有多个节点可以使用修改后的docker代码库(节点是否共享JVM?)。 具体而言,我的问题是如何SSH进入docker容器访问代码库?

多个应用程序节点如何在kubernetes中暴露jmx?

在kubernetes我可以暴露与service 。 这可以。 可以说我有1个Web实例和10个Java服务器实例。 我有一个Windows网关,我习惯通过安装在它上面的jconsole来访问这10个Java服务器实例。 显然,我不通过kubernetes服务公开所有的应用程序jmx端口。 我在这里有什么select? 我应该如何让这个外部的kubernetes集群windows网关访问那10台服务器的jmx端口? 这里的任何做法?

在Kubernetes访问其他容器的吊舱

当我在一个运行nginx和另一个php-fpm的容器中定义多个容器时,它们如何互相访问? 我是否必须在定义中定义一些链接(我无法find解释所有可用configuration选项的文档),或者默认情况下是否可以相互配合使用? 如果是,我必须把什么值放在configuration文件? 我读共享一个networking命名空间,但我不知道这是什么意思? 我也找不到任何例子。

在Docker容器里推荐GCE服务帐号authentication?

在定制的CentOS Docker容器中部署Google服务帐户凭证的最佳方式是在Google的Container Engine或其“container-vm”上运行? 这种行为自动发生在运行debian的google / cloud-sdk容器上,并且包含了我没有使用的东西,例如app-eng / java / php。 理想情况下,我试图访问我的项目中的非公共资源,例如Google Cloud Storage存储桶对象,而不必每次login和授权大量这些容器启动。 例如,在安装了自定义代码和gcloud / gsutil的GCE上运行的基础Centos容器上运行时: docker run –rm -ti custom-container gsutil ls 系统会提示您运行“gsutil config”以获得授权,我期望。 然而,将google / cloud-sdk容器拉到相同的GCE上并执行相同的命令,似乎巧妙地configuration了凭据的inheritance(可能来自主机container-vm的凭据?)。 当在GCE上运行容器来访问专用资源时,这似乎绕过运行“gsutil config”。 我正在寻找复制这个行为在最小的build设Centos容器大规模部署。