在CoreOS上运行Kubernetes示例,第1部分不起作用
我试图评估Kubernetes 。 我有意在CoreOS集群上挂载kubernetes,并且官方文档没有太多,只有两个引用到CoreOS的博客; 我目前正在使用指南在CoreOS部分1上运行kubernetes例子 。
我的apiserver.service:
[Unit] ConditionFileIsExecutable=/opt/kubernetes/bin/apiserver Description=Kubernetes API Server [Unit] ConditionFileIsExecutable=/opt/kubernetes/bin/controller-manager Description=Kubernetes Controller Manager Documentation=https://github.com/GoogleCloudPlatform/kubernetes [Service] ExecStart=/opt/kubernetes/bin/controller-manager \ --etcd_servers=http://127.0.0.1:4001 \ --master=127.0.0.1:8080 \ --logtostderr=true Restart=on-failure RestartSec=1 [Install] WantedBy=multi-user.target Documentation=https://github.com/GoogleCloudPlatform/kubernetes [Service] ExecStart=/opt/kubernetes/bin/apiserver \ --address=127.0.0.1 \ --port=8080 \ --etcd_servers=http://127.0.0.1:4001 \ --machines=127.0.0.1 \ --logtostderr=true Restart=on-failure RestartSec=1 [Install] WantedBy=multi-user.target
我的controller-manager.service:
[Unit] ConditionFileIsExecutable=/opt/kubernetes/bin/controller-manager Description=Kubernetes Controller Manager Documentation=https://github.com/GoogleCloudPlatform/kubernetes [Service] ExecStart=/opt/kubernetes/bin/controller-manager \ --etcd_servers=http://127.0.0.1:4001 \ --master=127.0.0.1:8080 \ --logtostderr=true Restart=on-failure RestartSec=1 [Install] WantedBy=multi-user.target
我的kubelet.service:
[Unit] ConditionFileIsExecutable=/opt/kubernetes/bin/kubelet Description=Kubernetes Kubelet Documentation=https://github.com/GoogleCloudPlatform/kubernetes [Service] ExecStart=/opt/kubernetes/bin/kubelet \ --address=127.0.0.1 \ --port=10250 \ --hostname_override=127.0.0.1 \ --etcd_servers=http://127.0.0.1:4001 \ --logtostderr=true Restart=on-failure RestartSec=1 [Install] WantedBy=multi-user.target
我的proxy.service
[Unit] ConditionFileIsExecutable=/opt/kubernetes/bin/proxy Description=Kubernetes Proxy Documentation=https://github.com/GoogleCloudPlatform/kubernetes [Service] ExecStart=/opt/kubernetes/bin/proxy --etcd_servers=http://127.0.0.1:4001 --logtostderr=true Restart=on-failure RestartSec=1 [Install] WantedBy=multi-user.target
当我创build一个Kubernetes pod redis时出现问题。
当我执行命令:
/opt/kubernetes/bin/kubecfg -h http://127.0.0.1:8080 -c kubernetes-coreos/pods/redis.json create /pods
长时间等待后输出错误:
{Kind:"", ID:"", CreationTimestamp:"", SelfLink:"", ResourceVersion:0x0}, Status:"failure", Details:"failed to find fit for api.Pod{JSONBase:api.JSONBase{Kind:\"\", ID:\"redis\", CreationTimestamp:\"\", SelfLink:\"\", ResourceVersion:0x0}, Labels:map[string]string{\"name\":\"redis\"}, DesiredState:api.PodState{Manifest:api.ContainerManifest{Version:\"v1beta1\", ID:\"redis\", Volumes:[]api.Volume(nil), Containers:[]api.Container{api.Container{Name:\"redis\", Image:\"registry.vc.datys.cu:5000/redis\", Command:[]string(nil), WorkingDir:\"\", Ports:[]api.Port{api.Port{Name:\"\", HostPort:6379, ContainerPort:6379, Protocol:\"\", HostIP:\"\"}}, Env:[]api.EnvVar(nil), Memory:0, CPU:0, VolumeMounts:[]api.VolumeMount(nil), LivenessProbe:api.LivenessProbe{Enabled:false, Type:\"\", HTTPGet:api.HTTPGetProbe{Path:\"\", Port:\"\", Host:\"\"}, InitialDelaySeconds:0}}}}, Status:\"\", Host:\"\", HostIP:\"\", Info:api.PodInfo(nil)}, CurrentState:api.PodState{Manifest:api.ContainerManifest{Version:\"\", ID:\"\", Volumes:[]api.Volume(nil), Containers:[]api.Container(nil)}, Status:\"\", Host:\"\", HostIP:\"\", Info:api.PodInfo(nil)}}", Code:500}
注意:当我执行时: sudo systemctl status proxy
return:
● proxy.service - Kubernetes Proxy Loaded: loaded (/etc/systemd/system/proxy.service; disabled) Active: active (running) since Fri 2014-08-08 14:21:36 UTC; 8s ago Docs: https://github.com/GoogleCloudPlatform/kubernetes Main PID: 1036 (proxy) CGroup: /system.slice/proxy.service └─1036 /opt/kubernetes/bin/proxy --etcd_servers=http://127.0.0.1:4001 --logtostderr=true Aug 08 14:21:42 core-01 proxy[1036]: I0808 14:21:42.074694 01036 logs.go:38] etcd DEBUG: [recv.success. http://127.0.0.1:4001/v2/keys/registry/ser...rted=true] Aug 08 14:21:42 core-01 proxy[1036]: E0808 14:21:42.074763 01036 etcd.go:115] Failed to get the key registry/services: 100: Key not found (/registry) [57] Aug 08 14:21:42 core-01 proxy[1036]: E0808 14:21:42.074791 01036 etcd.go:75] Failed to get any services: 100: Key not found (/registry) [57] Aug 08 14:21:44 core-01 proxy[1036]: I0808 14:21:44.075337 01036 logs.go:38] etcd DEBUG: get [registry/services/specs http://127.0.0.1:4001] [%!s(MISSING)] Aug 08 14:21:44 core-01 proxy[1036]: I0808 14:21:44.075501 01036 logs.go:38] etcd DEBUG: [Connecting to etcd: attempt 1 for keys/registry/services...rted=true] Aug 08 14:21:44 core-01 proxy[1036]: I0808 14:21:44.075528 01036 logs.go:38] etcd DEBUG: [send.request.to http://127.0.0.1:4001/v2/keys/registry/...thod GET] Aug 08 14:21:44 core-01 proxy[1036]: I0808 14:21:44.078524 01036 logs.go:38] etcd DEBUG: [recv.response.from http://127.0.0.1:4001/v2/keys/registr...rted=true] Aug 08 14:21:44 core-01 proxy[1036]: I0808 14:21:44.078824 01036 logs.go:38] etcd DEBUG: [recv.success. http://127.0.0.1:4001/v2/keys/registry/ser...rted=true] Aug 08 14:21:44 core-01 proxy[1036]: E0808 14:21:44.078897 01036 etcd.go:115] Failed to get the key registry/services: 100: Key not found (/registry) [57] Aug 08 14:21:44 core-01 proxy[1036]: E0808 14:21:44.078925 01036 etcd.go:75] Failed to get any services: 100: Key not found (/registry) [57] Hint: Some lines were ellipsized, use -l to show in full.
并执行时: /opt/kubernetes/bin/kubecfg -h http://127.0.0.1:8080 list /pods
return:
Name Image(s) Host Labels ---------- ---------- ---------- ---------- redis dockerfile/redis 127.0.0.1/ name=redis
有什么问题? 我很欣赏任何想法或合作。
编辑1:
我的redis.json:
{ "id": "redis", "desiredState": { "manifest": { "version": "v1beta1", "id": "redis", "containers": [{ "name": "redis", "image": "registry.vc.datys.cu:5000/redis", "ports": [{ "containerPort": 6379, "hostPort": 6379 }] }] } }, "labels": { "name": "redis" } }
您在日志中看到的错误是您尝试创build的窗格与Kubernetes API服务器存在端口冲突。 两者都尝试使用端口8080.通过更改窗格在另一个端口上运行来解决此问题。
你必须先清理一下。 所以使用kubecfg命令删除redis窗格。 更新pod.json文件,然后重试。
也请按照https://github.com/kelseyhightower/kubernetes-coreos上的快速入门指南进行操作。 Kubernetes是一个快速移动的项目,所以博客将很快过时。