如果我使用转发端口
kubectl port-forward mypod 9000:9000
Run Code Online (Sandbox Code Playgroud)
如何撤消,以便我可以将端口9000与另一个程序绑定?
此外,我如何测试以查看转发的端口?
我有一个kubernetes单节点设置(参见https://coreos.com/kubernetes/docs/latest/kubernetes-on-vagrant-single.html)
我有一个服务和一个复制控制器创建pod.这些pod需要连接到同一服务中的其他pod(注意:这最终是因为我可以让mongo运行w /副本集(非localhost),但这个简单的例子演示了mongo的问题).
当我从任何节点连接到服务时,它将被分发(按预期)到其中一个pod.这将一直有效,直到它自身负载平衡(我所在的容器).然后它无法连接.
很抱歉是冗长的,但我要附上我的所有文件,以便你可以看到我在这个小例子中做了什么.
Dockerfile:
FROM ubuntu
MAINTAINER Eric H
RUN apt-get update; apt-get install netcat
EXPOSE 8080
COPY ./entry.sh /
ENTRYPOINT ["/entry.sh"]
Run Code Online (Sandbox Code Playgroud)
这是切入点
#!/bin/bash
# wait for a connection, then tell them who we are
while : ; do
echo "hello, the date=`date`; my host=`hostname`" | nc -l 8080
sleep .5
done
Run Code Online (Sandbox Code Playgroud)
构建dockerfile
docker build -t echoserver .
标记并上传到我的k8s群集的注册表
docker tag -f echoserver:latest 127.0.0.1:5000/echoserver:latest
docker push 127.0.0.1:5000/echoserver:latest
Run Code Online (Sandbox Code Playgroud)
这是我的复制控制器
apiVersion: v1
kind: ReplicationController
metadata:
labels:
role: echo-server …Run Code Online (Sandbox Code Playgroud) 我有一个k8s资源的通用模板,我想扩展n次(如果你很好奇,我可以创建mongo集群的n个成员,他们正在使用statefulset资源,这样每个成员都有一个稳定的网络名称).
显然,每次循环我都需要不同的值.我正在循环Sprig"until"函数生成的一系列索引.但是循环的$ index没有在"."中设置.命名空间.所以我无法在我的_helpers.tpl文件中引用我定义的模板中的当前迭代.
这里是一个示例模板w /完整的k8s资源yaml(我缩写大部分):
{{- define "mytest" -}}
---
apiVersion: apps/v1beta1
kind: StatefulSet
abbreviated...
containers:
- name: mongod-$index
abbreviated...
{{- end -}}
Run Code Online (Sandbox Code Playgroud)
呼叫者:
{{ range $index, $e := until .Values.mongod_count }}
{{include "mytest" .}}
{{ end}}
Run Code Online (Sandbox Code Playgroud)
我得到:未定义的变量"$ index"
我也试过过块,就像在我的(调用者)模板中一样:
{{ $foo := "somevalue" }}
{{ define "my_extra_labels" }} bla {{ .Values.test }}_{{$foo}}{{end}}
{{ template "mytest" . }}
Run Code Online (Sandbox Code Playgroud)
这在我的_helpers.tpl中
{{/* Test stuff */}}
{{- define "mytest" -}}
hello: world_how_are_{{ block "my_extra_labels" . }}{{ end }}
{{- end -}}
Run Code Online (Sandbox Code Playgroud)
变量$ foo未在"define"主体中定义. …
我只是浪费了一个早上试图解决这个问题,我终于做到了.对于这个问题没有任何暗示,所以我想我会发布我的经验和最终有效的东西.
我正在运行ubuntu 13.10并且突然昨天当我通过usb插入我的Android手机时,它无法安装.这些是/ var/log/syslog中的错误
Feb 7 12:07:43 andromeda kernel: [ 376.474339] usb 3-3: new full-speed USB device number 9 using xhci_hcd
Feb 7 12:07:43 andromeda kernel: [ 376.474574] usb 3-3: Device not responding to set address.
Feb 7 12:07:43 andromeda kernel: [ 376.678542] usb 3-3: Device not responding to set address.
Feb 7 12:07:43 andromeda kernel: [ 376.882343] usb 3-3: device not accepting address 9, error -71
Feb 7 12:07:43 andromeda kernel: [ 376.994413] usb 3-3: new full-speed USB device …Run Code Online (Sandbox Code Playgroud) Statefulsets 指示 kubectl/kubernetes 创建 pod,其索引或序号跟在 pod 名称后面。例如,如果实体的名称为 redis,并且复制计数为 3,那么我们将得到 redis-0、redis-1 和 redis-2。有什么方法可以访问索引或序数吗?传递给容器的启动脚本将非常有用。如果能在downward api中使用就好了。当尝试将 PVC 与 PV 对齐时,使用它真是太好了。
是否可能存在一些秘密模板变量?
请注意,我已经找到了解决方法。我正在为我的命令使用脚本并使用主机名来提取它。但这似乎需要大量工作(以及未来的维护)。