1

我是 Docker 的初学者。想知道这样做是否是一种好习惯以及最好的方法是什么?

系统:Ubuntu LTS 16.04.2

我想用代理在我的服务器上部署 Kubernetes。由于一些问题,我使用 polipo 将 sock5 代理转换为 http 代理。http代理已成功应用到终端。然后我搜索了: https ://docs.docker.com/engine/admin/systemd/#http-proxy 并在/etc/systemd/system/docker.service.d/http-proxy 中添加了 HTTP_PROXY 环境变量。配置

[服务]

环境="HTTP_PROXY= http://127.0.0.1:8123/ "

然后这样做:

$ sudo systemctl show --property Environment docker Environment=HTTP_PROXY= http://127.0.0.1:8123/

$ sudo systemctl 守护进程重载

$ sudo systemctl 重启泊坞窗

然后我成功安装了kubelet kubeadm kubectl kubernetes-cni并运行了以下命令:

# kubeadm 初始化

这是操作的结果:

root@ubuntu16:~# kubeadm init

[kubeadm] 警告:kubeadm 处于测试阶段,请勿将其用于生产集群。

[init] 使用 Kubernetes 版本:v1.8.2

[init] 使用授权模式:[Node RBAC]

[飞行前] 运行飞行前检查

[预检]警告:连接到“ https://59.64.78.138:6443 ”使用代理

http://127.0.0.1:8123/ ”。如果这不是故意的,请调整您的代理设置

[预检] 启动 kubelet 服务

[kubeadm] 警告:从 1.8 开始,默认情况下令牌会在 24 小时后过期(如果您需要不会过期的令牌,请使用 --token-ttl 0)

[证书] 生成的 ca 证书和密钥。

[证书] 生成的 apiserver 证书和密钥。

[证书] 为 DNS 名称 [ubuntu16 kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] 和 IP [10.96.0.1 my_server_IP ]签名的 apiserver 服务证书

[证书] 生成 apiserver-kubelet-client 证书和密钥。

[证书] 生成 sa 密钥和公钥。

[证书] 生成的 front-proxy-ca 证书和密钥。

[证书] 生成的前端代理客户端证书和密钥。

[证书] 有效的证书和密钥现在存在于“/etc/kubernetes/pki”中

[kubeconfig] 将 KubeConfig 文件写入磁盘:“admin.conf”

[kubeconfig] 将 KubeConfig 文件写入磁盘:“kubelet.conf”

[kubeconfig] 将 KubeConfig 文件写入磁盘:“controller-manager.conf”

[kubeconfig] 将 KubeConfig 文件写入磁盘:“scheduler.conf”

[controlplane] 将组件 kube-apiserver 的静态 Pod 清单写入“/etc/kubernetes/manifests/kube-apiserver.yaml”

[controlplane] 将组件 kube-controller-manager 的静态 Pod 清单写入“/etc/kubernetes/manifests/kube-controller-manager.yaml”

[controlplane] 将组件 kube-scheduler 的静态 Pod 清单写入“/etc/kubernetes/manifests/kube-scheduler.yaml”

[etcd] 将本地 etcd 实例的静态 Pod 清单写入“/etc/kubernetes/manifests/etcd.yaml”

[init] 等待 kubelet 作为静态 Pod 从目录“/etc/kubernetes/manifests”启动控制平面

[init] 这通常需要大约一分钟;如果必须拉取控制平面图像,则需要更长的时间。

然后它没有继续,我跑了

# systemctl status kubelet

● kubelet.service - kubelet:Kubernetes 节点代理

已加载:已加载(/lib/systemd/system/kubelet.service;已启用;供应商预设:已启用)

插入:/etc/systemd/system/kubelet.service.d

      └─10-kubeadm.conf, 90-local-extras.conf

活动:自 2017 年 11 月 5 日星期日 21:17:37 CST 起活动(运行);9分钟前

Docs: http://kubernetes.io/docs/

主PID:19363(kubelet)

任务:14

内存:39.9M

 CPU: 14.229s

CGroup:/system.slice/kubelet.service

      └─19363 /usr/bin/kubelet --bootstrap->?

kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/k

11 月 5 日 21:26:28 ubuntu16 kubelet[19363]:W1105 21:26:28.959628 19363 cni.go:196] 无法更新 cni 配置:没有 ne

Nov 05 21:26:28 ubuntu16 kubelet[19363]: E1105 21:26:28.960538 19363 kubelet.go:2095] 容器运行时网络不

11 月 5 日 21:26:33 ubuntu16 kubelet[19363]:W1105 21:26:33.962500 19363 cni.go:196] 无法更新 cni 配置:没有 ne

Nov 05 21:26:33 ubuntu16 kubelet[19363]: E1105 21:26:33.963407 19363 kubelet.go:2095] 容器运行时网络不

11 月 5 日 21:26:38 ubuntu16 kubelet[19363]:W1105 21:26:38.974986 19363 cni.go:196] 无法更新 cni 配置:没有 ne

11 月 5 日 21:26:38 ubuntu16 kubelet[19363]: E1105 21:26:38.975851 19363 kubelet.go:2095] 容器运行时网络不

11 月 5 日 21:26:43 ubuntu16 kubelet[19363]:W1105 21:26:43.977879 19363 cni.go:196] 无法更新 cni 配置:没有 ne

Nov 05 21:26:43 ubuntu16 kubelet[19363]: E1105 21:26:43.978806 19363 kubelet.go:2095] 容器运行时网络不

11 月 5 日 21:26:48 ubuntu16 kubelet[19363]:W1105 21:26:48.992642 19363 cni.go:196] 无法更新 cni 配置:没有 ne

Nov 05 21:26:48 ubuntu16 kubelet[19363]: E1105 21:26:48.993587 19363 kubelet.go:2095] 容器运行时网络不

第 1-23/23 行(完)

现在我很困惑如何解决这个问题。我在网上找了很久。但是没有用。请帮助或尝试提供一些想法如何实现这一目标。

提前致谢。

4

1 回答 1

0

安装它我有这个修改来对齐 docker 和 kubelet 之间的 cfgroups:

码头工人信息 |grep -i cgroup

在文件/etc/systemd/system/kubelet.service.d/10-kubeadm.conf 中 修改相应的行:

环境="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs"

再见

于 2017-11-05T15:59:29.807 回答