首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes/kubectl:无法连接到服务器以处理“荚”

Kubernetes/kubectl:无法连接到服务器以处理“荚”
EN

Stack Overflow用户
提问于 2017-12-26 22:50:13
回答 1查看 2K关注 0票数 1

我对Kubernetes很陌生,所以我遇到了以下问题。以下是我的步骤:

1)我运行了etcd

代码语言:javascript
复制
docker run --volume=/var/etcd:/var/etcd --net=host -d gcr.io/google_containers/etcd:2.0.12 /usr/local/bin/etcd --addr=127.0.0.1:4001 --bind-addr=0.0.0.0:4001 --data-dir=/var/etcd/data

2)我运行了主容器:

代码语言:javascript
复制
docker run \
--volume=/:/rootfs:ro \
--volume=/sys:/sys:ro \
--volume=/dev:/dev \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/var/lib/kubelet/:/var/lib/kubelet:rw \
--volume=/var/run:/var/run:rw \
--net=host \
--pid=host \
--privileged=true \
-d gcr.io/google_containers/hyperkube:v1.0.1 \
/hyperkube kubelet --containerized --hostname-override="127.0.0.1" --address="0.0.0.0" --api-servers=http://localhost:8080 --config=/etc/kubernetes/manifests

3)我运行了代理:

代码语言:javascript
复制
docker run -d --net=host --privileged gcr.io/google_containers/hyperkube:v1.0.1 /hyperkube proxy --master=http://127.0.0.1:8080 --v=2

4)我安装了kubectl

5)我创建了这个简单的pod-file.yml

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: two-containers
spec:

  restartPolicy: Never

  volumes:
  - name: shared-data
    emptyDir: {}

  containers:

  - name: nginx-container
    image: nginx
    volumeMounts:
    - name: shared-data
      mountPath: /usr/share/nginx/html

  - name: debian-container
    image: debian
    volumeMounts:
    - name: shared-data
      mountPath: /pod-data
    command: ["/bin/sh"]
    args: ["-c", "echo Hello from the debian container > /pod-data/index.html"]

并试图通过运行来创建吊舱:

代码语言:javascript
复制
kubectl create -f pod-file.yml

我得到了:

代码语言:javascript
复制
ubuntu@ubuntu:~$ kubectl create -f pod-file.yml
error: could not read an encoded object from pod-file.yml: unable to connect to a server to handle "pods": couldn't read version from server: Get http://localhost:8080/api: dial tcp 127.0.0.1:8080: connection refused

我发现这很奇怪,所以我检查了我之前跑过的集装箱:

代码语言:javascript
复制
ubuntu@ubuntu:~$ docker ps
CONTAINER ID        IMAGE                                       COMMAND                  CREATED             STATUS                                                                           PORTS               NAMES
3ae7f094bb01        gcr.io/google_containers/hyperkube:v1.0.1   "/hyperkube proxy ..."   55 minutes ago      Up 55 minutes                                                                                        suspicious_ramanujan
ed841bc6ef26        gcr.io/google_containers/hyperkube:v1.0.1   "/hyperkube kubele..."   57 minutes ago      Up 57 minutes                                                                                        competent_mclean
7408c640a2c8        gcr.io/google_containers/etcd:2.0.12        "/usr/local/bin/et..."   About an hour ago   Up About an hour                                                                                     elated_shaw

所以看起来一切都没问题,因为所有的容器都已经启动并运行。好的,我在我的系统(ubuntu 16.04)中检查了打开的端口:

代码语言:javascript
复制
ubuntu@ubuntu:~$ sudo netstat -nautp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1315/sshd
tcp        0      0 127.0.0.1:7001          0.0.0.0:*               LISTEN      3209/etcd
tcp        0      0 127.0.0.1:10248         0.0.0.0:*               LISTEN      3324/hyperkube
tcp        0      0 127.0.0.1:10249         0.0.0.0:*               LISTEN      3399/hyperkube
tcp        0      0 127.0.0.1:2380          0.0.0.0:*               LISTEN      3209/etcd
tcp        0    524 172.30.3.114:22         212.98.179.158:35900    ESTABLISHED 3087/sshd: ubuntu [
tcp6       0      0 :::10255                :::*                    LISTEN      3324/hyperkube
tcp6       0      0 :::22                   :::*                    LISTEN      1315/sshd
tcp6       0      0 :::4001                 :::*                    LISTEN      3209/etcd
tcp6       0      0 :::10250                :::*                    LISTEN      3324/hyperkube
udp        0      0 0.0.0.0:68              0.0.0.0:*                           959/dhclient
udp        0      0 0.0.0.0:68              0.0.0.0:*                           796/dhclient

我发现没有8080打开kubectl试图到达的TCP端口。所以这就是我的问题的原因。

因此,我的问题是,我应该运行/启动哪个容器/服务/守护进程来打开这个端口,并将web服务分配给它,以便让kubectl将它用于GET请求http://localhost:8080/api

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-27 02:09:05

创建一个库伯奈特星团要复杂一些。主kubelet运行一个荚数来实现这一切。

如果您正在寻找一个完整的解决方案,请使用小库贝在VM中运行。否则,使用kubeadm设置您的主程序,如果您想了解每个组件是如何安装的,请从那里开始工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47984529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档