部署 k8s Cluster(上)- 天天5分钟玩转 Docker 容器技术(118)

咱们将部署三个节点的 Kubernetes Cluster。html

591.png

k8s-master 是 Master,k8s-node1 和 k8s-node2 是 Node。node

全部节点的操做系统均为 Ubuntu 16.04,固然其余 Linux 也是能够的。docker

官方安装文档能够参考 https://kubernetes.io/docs/setup/independent/install-kubeadm/ubuntu

注意:Kubernetes 几乎全部的安装组件和 Docker 镜像都放在 goolge 本身的网站上,这对国内的同窗多是个不小的障碍。建议是:网络障碍都必须想办法克服,否则连 Kubernetes 的门都进不了。api

安装 Docker

全部节点都须要安装 Docker。bash

apt-get update && apt-get install docker.io

安装 kubelet、kubeadm 和 kubectl

在全部节点上安装 kubelet、kubeadm 和 kubectl。网络

kubelet 运行在 Cluster 全部节点上,负责启动 Pod 和容器。curl

kubeadm 用于初始化 Cluster。工具

kubectl 是 Kubernetes 命令行工具。经过 kubectl 能够部署和管理应用,查看各类资源,建立、删除和更新各类组件。网站

apt-get update && apt-get install -y apt-transport-httpscurl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -cat <<EOF >/etc/apt/sources.list.d/kubernetes.listdeb http://apt.kubernetes.io/ kubernetes-xenial mainEOFapt-get updateapt-get install -y kubelet kubeadm kubectl

用 kubeadm 建立 Cluster

完整的官方文档能够参考 https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/

初始化 Master

在 Master 上执行以下命令:

kubeadm init --apiserver-advertise-address 192.168.56.105 --pod-network-cidr=10.244.0.0/16

--apiserver-advertise-address 指明用 Master 的哪一个 interface 与 Cluster 的其余节点通讯。若是 Master 有多个 interface,建议明确指定,若是不指定,kubeadm 会自动选择有默认网关的 interface。

--pod-network-cidr 指定 Pod 网络的范围。Kubernetes 支持多种网络方案,并且不一样网络方案对 --pod-network-cidr 有本身的要求,这里设置为 10.244.0.0/16 是由于咱们将使用 flannel 网络方案,必须设置成这个 CIDR。在后面的实践中咱们会切换到其余网络方案,好比 Canal。

初始化过程以下:

592.png

① kubeadm 执行初始化前的检查。

② 生成 token 和证书。

③ 生成 KubeConfig 文件,kubelet 须要这个文件与 Master 通讯。

④ 安装 Master 组件,会从 goolge 的 Registry 下载组件的 Docker 镜像,这一步可能会花一些时间,主要取决于网络质量。

⑤ 安装附加组件 kube-proxy 和 kube-dns。

⑥ Kubernetes Master 初始化成功。

⑦ 提示如何配置 kubectl,后面会实践。

⑧ 提示如何安装 Pod 网络,后面会实践。

⑨ 提示如何注册其余节点到 Cluster,后面会实践。

配置 kubectl

kubectl 是管理 Kubernetes Cluster 的命令行工具,前面咱们已经在全部的节点安装了 kubectl。Master 初始化完成后须要作一些配置工做,而后 kubectl 就能使用了。

依照 kubeadm init 输出的第 ⑦ 步提示,推荐用 Linux 普通用户执行 kubectl(root 会有一些问题)。

咱们为 ubuntu 用户配置 kubectl:

su - ubuntumkdir -p $HOME/.kubesudo 
cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo 
chown $(id -u):$(id -g) $HOME/.kube/config

为了使用更便捷,启用 kubectl 命令的自动补全功能。

echo "source <(kubectl completion bash)" >> ~/.bashrc

这样 ubuntu 用户就可使用 kubectl 了。

下节咱们将安装 Pod 网络并添加 k8s-node1 和 k8s-node2,完成集群部署。

书籍:

1.《天天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html

2.《天天5分钟玩转OpenStack》
https://item.jd.com/12086376.html

相关文章
相关标签/搜索