Kubernetes 设置
在设置 Kubernetes 之前设置虚拟数据中心 (vDC) 很重要。这可以被视为一组机器,它们可以通过网络相互通信。对于动手操作的方法,你可以在利润砖如果你没有设置物理或云基础设施。
在设置Kubernetes之前,建立虚拟数据中心(vDC)很重要,这是一组机器,它们可以通过网络相互通信。
在任何云上的 IaaS 设置完成后,你需要配置Master和Node。
注意: 设置显示为 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 引擎了,在此之前你需要验证使用的内核版本是否正确。
安装 Docker 引擎
运行以下命令安装 Docker 引擎:
步骤1: 登录机器;
步骤2: 更新包索引;
$ sudo apt-get update
步骤3: 使用以下命令安装 Docker Engine;
$ sudo apt-get install docker-engine
步骤4: 启动Docker守护进程;
$ sudo apt-get install docker-engine
步骤5:如果安装了Docker,使用如下命令:
$ sudo docker run hello-world
安装 etcd 2.0
这需要安装在 Kubernetes Master Machine 上,运行以下命令安装它:
$ 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:
$ git clone https:// github.com/GoogleCloudPlatform/kubernetes.git $ cd kubernetes $ make release
上述命令将在kubernetes文件夹的根目录创建一个_output目录。接下来,可以将该目录提取到任何一个目录,例如/opt/bin。
接下来是设置 Kubernetes master和node节点的网络部分,为此,在主机文件中创建一个条目,该条目可以在node机器上完成:
$ echo "<IP address of master machine> kube-master < IP address of Node Machine>" >> /etc/hosts
以下将是上述命令的输出:
现在,将从 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 控制器管理器
在/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调度器:
$ 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/
接下来配置kubelet和kube-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