kubernetes集群搭建实操

本文参照http://blog.csdn.net/yang7551735/article/details/51172179,根据自己试验环境的操作,过程记录如下。


集群规划

etcd:192.168.212.101

master:192.168.212.101

nodes:192.168.212.102,192.168.212.103,192.168.212.104

组件安装

master

      安装etcd,kubernetes-master,docker组件

       # yum install etcd kubernetes-master docker -y

      修改etcd的配置参数

      # vi /etc/etcd/etcd.conf将以下几行进行修改,完成后保存退出。配置文件的内容被应用于/usr/lib/systemd/system/etcd.service文件,如果需要更多配置,同步更新/usr/lib/systemd/system/etcd.service

      ETCD_NAME=default

      ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

      ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"

      ETCD_ADVERTISE_CLIENT_URLS="http://192.168.212.101:2379"

     保存好后继续执行以下命令(设置自动启动服务,启动服务)

     systemctl enable etcd

     systemctl start etcd

    修改kubernetes server的参数

    # vi /etc/kubernetes/apiserver将以下几行进行修改,完成后保存退出。参数文件被/usr/lib/systemd/system/kube-apiserver.service引用。

    KUBE_API_ADDRESS="--address=0.0.0.0"

    KUBE_ETCD_SERVERS="--etcd_servers=http://192.168.212.101:2379"

    KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=192.168.0.0/16"

   192.168.0.0/16为虚拟机集群地址,根据实际修改

   设置/etc/kubernetes/controller-manager文件里的参数

   参数文件会被/usr/lib/systemd/system/kube-controller-manager.service引用

    KUBE_CONTROLLER_MANAGER_ARGS="--node-monitor-grace-period=10s --pod-eviction-timeout=10s"

    设置 /etc/kubernetes/config 文件里的参数

    参数文件会被scheduler、manager等引用

    KUBE_MASTER="--master=http://192.168.212.101:8080"

    到这里为止我们etcd和kubernetes的服务端设置就结束了,接着我们要启动kubernetes server服务执行下面的命令

   启动kubernetes server

    systemctl enable kube-apiserver kube-scheduler kube-controller-manager

    systemctl start kube-apiserver kube-scheduler kube-controller-manager

    验证服务已启动    

    systemctl list-units --type=service|grep kube-apiserver

    应该输出:kube-apiserver.service            loaded active running Kubernetes API Server

    配置docker虚拟机网段

    etcdctl set /coreos.com/network/config '{ "Network" : "10.1.0.0/16" }'

nodes

    安装kubernetes-nodes以及docker还有flanneld组件

     #yum install kubernetes-node flannel docker -y

     配置docker服务

      systemctl enable docker

      systemctl start docker

     配置flanneld服务

      修改/usr/lib/systemd/system/flanneld.service,其中定义的变量由/etc/sysconfig/flanneld文件声明:

      ExecStart=/usr/bin/flanneld-start -etcd-endpoints=${FLANNEL_ETCD} -etcd-prefix=${FLANNEL_ETCD_KEY} $FLANNEL_OPTIONS

      修改/etc/sysconfig/flanneld文件配置如下:

      FLANNEL_ETCD="http://192.168.212.101:2379"

      FLANNEL_ETCD_KEY="/coreos.com/network"

      然后启动flanneld服务

      systemctl enable flanneld.service

      systemctl restart flanneld.service

      systemctl restart docker

     修改docker网络

      因为docker需要使用flanneld的网络,因此需要修改docker的service文件:

      修改/usr/lib/systemd/system/docker.service文件,在执行前增加配置文件                          EnvironmentFile=-/etc/sysconfig/flanneld

     EnvironmentFile=-/run/flannel/subnet.env

     执行命令增加参数 --bip=${FLANNEL_SUBNET}

     重启docker

     systemctl daemon-reload

     systemctl restart docker

     网络配置检查

      执行ip a检查当前的网络的准备情况

kubernetes集群搭建实操_第1张图片

    如果看到到flannel0与docker0的网段相同,则网络配置成功。   

    kubernetes node配置

      修改/etc/kubernetes/config

      KUBE_MASTER="--master=http://192.168.212.101:8080"

      修改/etc/kubernetes/kubelet文件

      KUBELET_HOSTNAME="--hostname-override=192.168.211.102"

      KUBELET_API_SERVER="--api-servers=http://192.168.212.101:8080"

    启动kubernets node服务

     systemctl enable kubelet kube-proxy

     systemctl start kubelet kube-proxy

     验证服务已启动

       systemctl list-units --type=service|grep kubelet

      应该输出:kubelet.service                    loaded active running Kubernetes Kubelet Server

完成好上述设置后我们在kubernetes server节点也就是我们实验中的host 192.168.212.101中执行kubectl get nodes可以看到如下节点:

tips:所有node会把自身的信息注册在etcd数据库。在etcd服务器上,通过etcdctl ls /registry/minions可以查看所有已经注册的node,如:

你可能感兴趣的:(kubernetes集群搭建实操)