Kubernetes怎么搭建和设置?

文章导读
上一步 测验 下一步 在设置 Kubernetes 之前,设置虚拟数据中心 (vDC) 非常重要。这可以视为一组可以通过网络相互通信的机器。对于动手实践,如果您没有物理或云基础设施,可以在 PROFITBRICKS 上设置 vDC。
📋 目录
  1. A 前提条件
  2. B 安装 Docker Engine
  3. C 安装 etcd 2.0
  4. D 配置 kube-apiserver
  5. E 配置 kube Controller Manager
  6. F Kubernetes 节点配置
A A

Kubernetes - 设置



上一步
测验
下一步

在设置 Kubernetes 之前,设置虚拟数据中心 (vDC) 非常重要。这可以视为一组可以通过网络相互通信的机器。对于动手实践,如果您没有物理或云基础设施,可以在 PROFITBRICKS 上设置 vDC。

一旦在任何云上完成 IaaS 设置,您需要配置 MasterNode

注意 − 该设置示例针对 Ubuntu 机器。同样也可以在其他 Linux 机器上设置。

前提条件

安装 Docker − Kubernetes 的所有实例都需要 Docker。以下是安装 Docker 的步骤。

步骤 1 − 使用 root 用户账户登录机器。

步骤 2 − 更新软件包信息。确保 apt 软件包正常工作。

步骤 3 − 运行以下命令。

$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates

步骤 4 − 添加新的 GPG 密钥。

$ sudo apt-key adv \
   --keyserver hkp://ha.pool.sks-keyservers.net:80 \
   --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
$ echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | sudo tee
/etc/apt/sources.list.d/docker.list

步骤 5 − 更新 API 软件包镜像。

$ sudo apt-get update

完成上述所有任务后,您可以开始实际安装 Docker engine。不过,在此之前,您需要验证所使用的 kernel 版本是否正确。

安装 Docker Engine

运行以下命令安装 Docker engine。

步骤 1 − 登录机器。

步骤 2 − 更新软件包索引。

$ sudo apt-get update

步骤 3 − 使用以下命令安装 Docker Engine。

$ sudo apt-get install docker-engine

步骤 4 − 启动 Docker daemon。

sudo service docker start

步骤 5 − 要验证 Docker 是否安装成功,使用以下命令。

$ sudo docker run hello-world

安装 etcd 2.0

这需要在 Kubernetes Master 机器上安装。为了安装它,请运行以下命令。

$ curl -L https://github.com/coreos/etcd/releases/download/v2.0.0/etcd
-v2.0.0-linux-amd64.tar.gz -o etcd-v2.0.0-linux-amd64.tar.gz ->1
$ tar xzvf etcd-v2.0.0-linux-amd64.tar.gz ------>2
$ cd etcd-v2.0.0-linux-amd64 ------------>3
$ mkdir /opt/bin ------------->4
$ cp etcd* /opt/bin ----------->5

在上述命令集中 −

  • 首先,我们下载 etcd。将其保存为指定的名称。
  • 然后,我们需要解压 tar 包。
  • 我们在 /opt 下创建一个名为 bin 的目录。
  • 将提取的文件复制到目标位置。

现在我们准备好构建 Kubernetes 了。我们需要在集群中的所有机器上安装 Kubernetes。

$ git clone https://github.com/GoogleCloudPlatform/kubernetes.git
$ cd kubernetes
$ make release

上述命令将在 kubernetes 文件夹的根目录下创建一个 _output 目录。接下来,我们可以将该目录提取到我们选择的任何目录中,例如 /opt/bin 等。

接下来是网络部分,我们需要实际开始设置 Kubernetes master 和 node。为了做到这一点,我们将在节点机器上编辑 hosts 文件。

$ echo "<IP address of master machine> kube-master
< IP address of Node Machine>" >> /etc/hosts

上述命令的输出将如下所示。

Output

现在,我们将开始在 Kubernetes Master 上进行实际配置。

首先,我们将开始将所有配置文件复制到正确的位置。

$ cp <Current dir. location>/kube-apiserver /opt/bin/
$ cp <Current dir. location>/kube-controller-manager /opt/bin/
$ cp <Current dir. location>/kube-kube-scheduler /opt/bin/
$ cp <Current dir. location>/kubecfg /opt/bin/
$ cp <Current dir. location>/kubectl /opt/bin/
$ cp <Current dir. location>/kubernetes /opt/bin/

上述命令将所有配置文件复制到所需位置。现在我们将返回到我们构建 Kubernetes 文件夹的同一目录。

$ cp kubernetes/cluster/ubuntu/init_conf/kube-apiserver.conf /etc/init/
$ cp kubernetes/cluster/ubuntu/init_conf/kube-controller-manager.conf /etc/init/
$ cp kubernetes/cluster/ubuntu/init_conf/kube-kube-scheduler.conf /etc/init/

$ cp kubernetes/cluster/ubuntu/initd_scripts/kube-apiserver /etc/init.d/
$ cp kubernetes/cluster/ubuntu/initd_scripts/kube-controller-manager /etc/init.d/
$ cp kubernetes/cluster/ubuntu/initd_scripts/kube-kube-scheduler /etc/init.d/

$ cp kubernetes/cluster/ubuntu/default_scripts/kubelet /etc/default/
$ cp kubernetes/cluster/ubuntu/default_scripts/kube-proxy /etc/default/
$ cp kubernetes/cluster/ubuntu/default_scripts/kubelet /etc/default/

下一步是更新 /etc 目录下的复制的配置文件。

使用以下命令在 master 上配置 etcd。

$ ETCD_OPTS = "-listen-client-urls = http://kube-master:4001"

配置 kube-apiserver

为此,在 master 上,我们需要编辑我们之前复制的 /etc/default/kube-apiserver 文件。

$ KUBE_APISERVER_OPTS = "--address = 0.0.0.0 \
--port = 8080 \
--etcd_servers = <The path that is configured in ETCD_OPTS> \
--portal_net = 11.1.1.0/24 \
--allow_privileged = false \
--kubelet_port = < Port you want to configure> \
--v = 0"

配置 kube Controller Manager

我们需要在 /etc/default/kube-controller-manager 中添加以下内容。

$ KUBE_CONTROLLER_MANAGER_OPTS = "--address = 0.0.0.0 \
--master = 127.0.0.1:8080 \
--machines = kube-minion \ -----> #this is the kubernatics node
--v = 0

接下来,在对应的文件中配置 kube scheduler。

$ KUBE_SCHEDULER_OPTS = "--address = 0.0.0.0 \
--master = 127.0.0.1:8080 \
--v = 0"

完成上述所有任务后,我们就可以启动 Kubernetes Master 了。为了做到这一点,我们将重启 Docker。

$ service docker restart

Kubernetes 节点配置

Kubernetes 节点将运行两个服务:kubelet 和 kube-proxy。在继续之前,我们需要将下载的二进制文件复制到配置 Kubernetes 节点所需的文件夹中。

使用与 Kubernetes master 相同的复制文件方法。由于它只运行 kubelet 和 kube-proxy,我们将配置它们。

$ cp <Path of the extracted file>/kubelet /opt/bin/
$ cp <Path of the extracted file>/kube-proxy /opt/bin/
$ cp <Path of the extracted file>/kubecfg /opt/bin/
$ cp <Path of the extracted file>/kubectl /opt/bin/
$ cp <Path of the extracted file>/kubernetes /opt/bin/

现在,我们将内容复制到相应的目录。

$ cp kubernetes/cluster/ubuntu/init_conf/kubelet.conf /etc/init/
$ cp kubernetes/cluster/ubuntu/init_conf/kube-proxy.conf /etc/init/
$ cp kubernetes/cluster/ubuntu/initd_scripts/kubelet /etc/init.d/
$ cp kubernetes/cluster/ubuntu/initd_scripts/kube-proxy /etc/init.d/
$ cp kubernetes/cluster/ubuntu/default_scripts/kubelet /etc/default/
$ cp kubernetes/cluster/ubuntu/default_scripts/kube-proxy /etc/default/

我们将配置 kubeletkube-proxy conf 文件。

我们将配置 /etc/init/kubelet.conf

$ KUBELET_OPTS = "--address = 0.0.0.0 \
--port = 10250 \
--hostname_override = kube-minion \
--etcd_servers = http://kube-master:4001 \
--enable_server = true
--v = 0"
/

对于 kube-proxy,我们将使用以下命令进行配置。

$ KUBE_PROXY_OPTS = "--etcd_servers = http://kube-master:4001 \
--v = 0"
/etc/init/kube-proxy.conf

最后,我们将重启 Docker 服务。

$ service docker restart

现在配置完成。您可以通过运行以下命令进行检查。

$ /opt/bin/kubectl get minions