kubeadm 安装 Kubernetes 1.6.2 过程中的一些坑
因为一些莫可名状的原因,国内网络使用 Kubeadm 颇有难度,这里大概说一下过程中的一些坑。
主体流程遵循官网指南:https://kubernetes.io/docs/getting-started-guides/kubeadm/
1/4 准备工作
这里用包管理的方式安装 kubeadm、Docker 等组件。需要 注意一点点的是,如果用的非 Root 用户,要注意 sudo 的时候的环境代理设置问题。或者干脆在 apt/yum 的配置文件中写入代理服务器。
另外这里安装 Docker 之后,注意给 Docker 配置代理。或者可以直接想法子搞到下面列表中的镜像,并导入 Docker 之中:
镜像准备
下面提到的镜像基于目前的 1.6.2 版本,每次更新都会有不同。
Image | Ver | Component |
---|---|---|
gcr.io/google_containers/kube-proxy-amd64 | v1.6.2 | Kubernetes |
gcr.io/google_containers/kube-controller-manager-amd64 | v1.6.2 | Kubernetes |
gcr.io/google_containers/kube-apiserver-amd64 | v1.6.2 | Kubernetes |
gcr.io/google_containers/kube-scheduler-amd64 | v1.6.2 | Kubernetes |
gcr.io/google_containers/etcd-amd64 | 3.0.17 | Kubernetes |
gcr.io/google_containers/pause-amd64 | 3.0 | Kubernetes |
gcr.io/google_containers/k8s-dns-sidecar-amd64 | 1.14.1 | DNS |
gcr.io/google_containers/k8s-dns-kube-dns-amd64 | 1.14.1 | DNS |
gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64 | 1.14.1 | DNS |
gcr.io/google_containers/etcd | 2.2.1 | Calico |
quay.io/calico/node | v1.1.3 | Calico |
quay.io/calico/cni | v1.8.0 | Calico |
quay.io/calico/kube-policy-controller | v0.5.4 | Calico |
2/4 Master 初始化
kubeadm init
这里的几个问题:
- 如果准备采用 flannel 插件,需要
-pod-network-cidr 10.244.0.0/16
参数 - Ubuntu 下可能会出现无限等待 Node 加入的情况,可能的原因是 /etc/resolv.conf 中有关于 localhost 的 search 记录,删掉这行就能解决。
- 如果准备采用 Calico 插件,那么要注意 Calico 的 YAML 中的 ip pool 跟集群设置一致。
- 如果不是预先准备好的备份,过程会比较长,耐心。。
Init 成功之后会出一堆文本信息,其中包含几点内容,最好保存下来:
- 自动生成的 kubectl config 文件,可以复制到 ~/.kube/config 中作为缺省 kubectl 使用。
- 把新节点加入集群的方法。
另外这里还有个提示——没有安装 Pod Network。
3/4 安装 Pod Network
这一步很重要,所有的应用包括 Kube DNS 在内,都依赖于此。
如上文所示,准备使用的是 Calico,这里值得注意的一坑是,不同版本的 Kubernetes 会有不同的 Calico 安装,1.6 版本应该使用的是:kubectl apply -f http://docs.projectcalico.org/v2.1/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml
http://docs.projectcalico.org/v2.1/getting-started/kubernetes/installation/hosted/kubeadm/
还有一些其他的安装方式可以参考。
Calico 的注意事项
- 他的 ETCD 服务器要求装在 Master 所在的 Node 上,使用的是 nodeSelector 的方式,选择标签:
node-role.kubernetes.io/master: ""
。 - 上文提到的 pod network cidr 和 ip pool 的一致性问题
-
--service-cidr
和 IP Pool 不能重叠
4/4 加入节点
在其他 Node 上做好准备工作之后,用kubeadm init
命令中提到的kubeadmin join
方法加入集群。
本文转自中文社区-kubeadm 安装 Kubernetes 1.6.2 过程中的一些坑

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Kubernetes 中基于策略的资源分配
IBM中国系统部软件架构师马达 大家好,很高兴能参加这次活动,今天主要会讲到关于策略的资源调度,做自己的产品也好,基本都是由资源调度为强项,我现在主要负责 Kubernetes 这边,主要做 Batch Job Admission and flexible resource allocation。最近也是在跟 Google 的人去聊如何基于策略去调度。我2005年开始做技术,这个题目大概就是这个,关于这个 Kuberentes#269,如果感兴趣,大家可以去上面看一看,还有这个 @k82cn,可以点进去看一下。 为什么我们要去做这样的事情?现在 Kubernetes,大家去部署所有的东西,感觉蛮不错的。我们为什么还要去聊这件事,这个最早的时候是很早的一个理念,我们当时大概分了几个步骤,mesos 有自己的调度,最主要是资源的管理和资源的分配,然后我们上层由 Kubernetes 去管理,然后是 spark,这两个是有专门的项目去做,现在的 spark 是 Kubernetes 的一个模式,然后我们自己去做了一个叫 session scheduler 的事情。Google 有一个人也在做...
- 下一篇
原生加速中国区Kubernetes安装
教你如何在中国区加速部署k8s,且实现自定义设置拥有k8s镜像的仓库与其命名空间。 概述 Kubernetes是一个强大的容器编排工具,帮助用户在可伸缩性系统上可靠部署和运行容器化应用。在容器领域内,K8s已毋庸置疑成为了容器编排和管理的社区标准,连Docker官方都已宣布支持K8s。在容器编排领域的战火已然分 出结果,尘埃落定,K8s得到了包括Google、Huawei、Microsoft、IBM、AWS、Rancher、Redhat、CoreOS等在内的容器玩家的一致认可。 Rancher容器管理平台原生支持K8s,使用户可以简单轻松地部署K8s集群。 然而对于中国玩家而言,由于谷歌镜像仓库的原因,很多时候K8S的使用体验并不顺滑。在往期发布的文章(《Rancher-k8s加速安装文档》)中,我们有讲解过如何通过修改应用商店地址来实现加速部署kubernetes。虽然这种方法能够实现kubernetes的加速部署,但是因为自定义的商店仓库无法与官方仓库实时同步,很多组件(网络、健康检查等)将无法保证及时的更新。因此,为了解决这个问题,我们在官方catalog模板的基础上做了修改,增...
相关文章
文章评论
共有0条评论来说两句吧...