Kubernetes(K8S) 设置

  • Kubernetes 设置

    在设置Kubernetes之前,必须先设置虚拟数据中心(vDC)。这可以看作是一组机器,它们可以通过网络相互通信。对于动手方法,如果未设置物理或云基础架构,则可以在PROFITBRICKS上设置vDC 。
    在任何云上完成IaaS设置后,您需要配置主服务器节点
    注意-显示的设置适用于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,拷贝etcd中内容到其中。
    现在我们准备构建Kubernetes。我们需要在集群上的所有机器上安装Kubernetes。
    
    $ git clone https://github.com/GoogleCloudPlatform/kubernetes.git
    $ cd kubernetes
    $ make release
    
    上面的命令将在kubernetes文件夹的根目录中创建一个_output目录。接下来,我们可以将目录提取到我们选择的任何目录/opt/bin中。
    接下来是网络部分,我们实际上需要从Kubernetes主节点和节点的设置开始。为此,我们将在主机文件中创建一个条目,该条目可以在节点计算机上完成。
    
    $ echo "< IP address of master machine > kube-master > IP address of Node Machine>" >> /etc/hosts
    
    以下是上述命令的输出。
    output
    现在,我们将从Kubernetes Master上的实际配置开始。
    首先,我们将开始将所有配置文件复制到它们的正确位置。
    
    $ cp <当前文件夹. location>/kube-apiserver /opt/bin/
    $ cp <当前文件夹. location>/kube-controller-manager /opt/bin/
    $ cp <当前文件夹. location>/kube-kube-scheduler /opt/bin/
    $ cp <当前文件夹. location>/kubecfg /opt/bin/
    $ cp <当前文件夹. location>/kubectl /opt/bin/
    $ cp <当前文件夹. 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