kubernetes 1.9.2 安装以及使用

背景

  1. kubernetes 1.9.2
  2. docker 18.9.2
  3. Ubuntu 18.04.1 LTS
  4. 参考书 <<kubernetes权威指南 从docker到kubernetes实践全接触>>纪念版(第二版?)
  5. 耗时: 20
  6. 结果: 无CA,单机能运行
  7. 机器:华为云, 2c4g

实践步骤

下载 k8s

依据书中推荐的第二种方式----在官方 github 编译中下载二进制包 Server Binaries.

wget https://dl.k8s.io/v1.9.2/kubernetes-client-linux-amd64.tar.gz

wget 用法 bolg

问题 :
  • wget 不动了, 加了 c 参数 , 更加动不了? 重新下 , 反而快.

安装 k8s server

按书指示安装 etcd , 版本 3.2.17. 执行 验证语句 etcdctl endpoint health无效 , 使用 etcdctl cluster-health替代
解压 server 包 , 依据指示继续.

tar -zxvf archive_name.tar.gz -C /usr/bin/

几个配置文件 , 在本地编辑好后直接拷贝 , 节约时间. 随后创建 logdir文件夹.

问题 :
  • unknow flag ? 检查输入是否和书本一致 , 相同情况下 , 无异常

安装 k8s client?

安装 docker , 官网 guide , 国内 blog , 使用国内的镜像源 , 快.

问题提示 , docker 与 kubelet 不在一个 cgroup . 由于 docker 直接命令安装 , 不知道 docker.service 位置

root@mylinux-002:/usr/lib/systemd/system# systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2019-02-16 15:48:58 CST; 18h ago
     Docs: https://docs.docker.com
 Main PID: 12101 (dockerd)
    Tasks: 14
   CGroup: /system.slice/docker.service
           └─12101 /usr/bin/dockerd -H fd:// --exec-opt native.cgroupdriver=systemd

可以看到 load 信息中有 docker.service 的位置 , 在其中进行修改.

#ExecStart=/usr/bin/dockerd -H fd://
ExecStart=/usr/bin/dockerd -H fd:// --exec-opt native.cgroupdriver=systemd

继续 , 在完全按照书本编写后 , 无法运行 , 提示

kubelet.go:1275] Image garbage collection failed once. Stats initialization may not have completed yet: failed to get imageFs info: unable to find data for container /

container_manager_linux.go:583] [ContainerManager]: Fail to get rootfs information unable to find data for container /

第一次尝试 , 以为是 pause容器的问题 , 使用 docker 下载一个 3.1 并本地化 tag 为 pause-amd64:3.0.

依旧出错 , 再次搜索后 , 使用 github issue 中 ingvagabund 的方法 , 新建 kubelet.kubeconfig 文件. 注意 yaml 格式书写 yaml 格式 blog , yaml 转 json , 书写检查.

ports:
- port: 8080
  nodePort: 30001
   等同于 ports: [ { port: 8080, nodePort: 30001 } ]
ports:
- port: 8080
- nodePort: 30001
  等同于 ports: [ { port: 8080 }, { nodePort: 30001 } ],

文件 kubelet , kubelet.kubeconfig 以及 kubelet.service:

root@mylinux-002:/etc/kubernetes# cat kubelet
KUBELET_ARGS="--cgroup-driver=systemd --kubeconfig=/etc/kubernetes/kubelet.kubeconfig --hostname-override=192.168.121.109 --fail-swap-on=false --logtostderr=false --log-dir=/var/log/kubernetes --v=2"
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=pause-amd64:3.0"
root@mylinux-002:/etc/kubernetes# cat kubelet.kubeconfig 
apiVersion: v1
kind: Config
clusters:
  - cluster:
      server: http://127.0.0.1:8080/
    name: local
contexts:
  - context:
      cluster: local
    name: local
current-context: local
root@mylinux-002:/usr/lib/systemd/system# cat kubelet.service 
[unit]
Description=Kubernetes Kubelet Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=docker.service
Requires=docker.service

[Service]
WorkingDirectory=/var/lib/kubelet
EnvironmentFile=/etc/kubernetes/kubelet
ExecStart=/usr/bin/kubelet \
		$KUBELET_POD_INFRA_CONTAINER \
		$KUBELET_ARGS
Restart=on-failure

[Install]
WantedBy=multi-user.target

在修改完毕后 , 重新依序启动各个服务 , 发现虽然 kubelet 依然有错误信息 , 但节点正常部署.

总结

原计划 4 个小时安装结束 , 耗时太长 , 主要在于与书中版本不对. 其次是 , 与网络博客中的大部分安装步骤不一致 , 没有对照. 最后 , 动手太早 , 应该多看书 , 尝试使用其中的推荐方法 , 和到官网搜索推荐安装方式.
其他博客安装教程:
follow me
青蛙小白
忙碌在路上
官网

k8s handbook

改进建议

因为一开始安装的是 ubuntu 没有 yum 命令 , 所以没有书中第一节提到的 kubeadm 工具. 但是 , 其实 ubuntu 环境里也有相关的 kubeadm 下载. 应该用这个工具加快安装部署速度.

后续

在另一台 1c2g 同内网机器下安装 k8s 客户端?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值