前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes 权威指南第二章校对(1)

Kubernetes 权威指南第二章校对(1)

作者头像
崔秀龙
发布2020-01-17 10:46:25
6630
发布2020-01-17 10:46:25
举报
文章被收录于专栏:伪架构师伪架构师

权威指南第二章的内容,是 Kubernetes 有史以来最经久不衰的入门话题:安装。

这里出了个巧合,编写第二章时,我负责的是 kubeadm 的部分,搭建虚拟机集群准备开始校对的时候,发现这一批虚拟机被分配的 IP 和写稿时候是一样的——10.211.55.30-32

推荐软硬件规格

实际上我经常用一组 2G 内存的虚拟机安装测试集群,到处翻看了一下,似乎也没看到很确切的说明,Building large clusters 一文给出了一些配置推荐,其中 1-5 节点的微型集群推荐的 Master 节点配置是 1 核 3.75 G 的虚拟机实例。

其次是 Docker 版本的推荐,建议去 Release Notes 中查找对应的版本说明,例如 1.14 版本的验证列表包含:1.13.1, 17.03, 17.06, 17.09, 18.06, 18.09。

过期文档查看方法示例: https://kubernetes.io/docs/setup/release/notes/ => https://v1-14.docs.kubernetes.io/docs/setup/release/notes/

kubeadm init

kubeadm init 命令配置一节,原本使用了我自己的 Docker hub 仓库,现在 Azure 提供了 gcr 镜像,这里也就顺便改成了:imageRepository: gcr.azk8s.cn/google_containers

init 命令执行过程中,会进行预检,官方文档中也介绍了预检内容:

init命令首先会执行一段称为preflight的预检工作,对当前的服务器状况进行检查,会导致检查不通过的情况包括:

  • Kubnernetes 需求:
    • 操作系统是否为 Linux;
    • 内核是否为 3.10+ 或者 4+,并启用特定开关;
    • 是否有合适的 cgroup 子系统配置;
  • Docker 服务不存在或者无法工作;
  • crictl sockert 无应答。
  • 当前用户不是 root;
  • 主机名称不是有效的 DNS 子域;
  • kubelet 版本低于 kubeadm 的要求(通常能够容忍一个小版本号的差异);
  • kubelet 版本比 kubeadm 版本高出一个小版本号以上;
  • API Server 的绑定端口(10250、10251以及10252)被占用;
  • /etc/kubernetes/manifest 已经存在并且非空;
  • /proc/sys/net/bridge/bridge-nf-call-iptables 不存在或者内容中不包含“1”;
  • 公布地址为 ipv6 并且 /proc/sys/net/bridge/bridge-nf-call-ip6tables 文件不存在或者内容中不包含“1”;
  • 找不到 ip、iptables、mount 或者 nsenter 命令;
  • 启用了交换文件;
  • 如果指定了外部 etcd:
    • 如果 etcd 版本低于 3.0.14;
    • 如果 etcd 中引用了不存在的证书或密钥。
  • 如果没有指定外部的 etcd:
    • 如果 2379 端口被占用;
    • 如果 Etcd.DataDir 路径已经存在并且非空;
  • 如果认证模式为 ABAC:
    • abac_policy.json 文件不存在。
  • 如果认证模式为 WebHook:
    • webhook_authz.conf 不存在。

常见的三个操作

以CentOS 7.5 Minimal版本为例,一般会有三个需要修改的地方:

  • 关闭交换文件: swapoff -a 删除 /etc/fstab/ 中的 swap 一行,重新启动。
  • 使用 sysctl 设置net.bridge.bridge-nf-call-iptables 和 net.ipv4.ip_forward 为 1。
  • 设置 Docker 配置文件 /etc/docker/daemon.json 内容如下,设置 Docker的 cgroupdriver 为 systemd,并重新启动 Docker 服务: { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m"}, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true"]}

单节点集群

该操作并非删除标签,而是去污点操作。

参考连接

  • 预检: https://kubernetes.io/docs/reference/setup-tools/kubeadm/implementation-details/
  • Building large clusters: https://kubernetes.io/docs/setup/best-practices/cluster-large/
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 伪架构师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 推荐软硬件规格
  • kubeadm init
  • 常见的三个操作
  • 单节点集群
  • 参考连接
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档