ddddddf 发表于 2018-9-15 12:08:55

kubernetes集群安装部署

  部署环境说明:
  1、CENTOS 7.4
  2、Docker version 17.05.0
  3、etcd Version: 3.3.8
  4、flannel-v0.10.0
  node节点上运行:
  Kubelet
  kube-proxy
  Docker
  flannel
  MASTER节点上运行:
  Etcd
  flannel
  kube-apiserver
  kube-controller-manager
  kube-scheduler
  IP    Address
  Role
  CPU
  Memory
  192.168.1.10
  K8s-Master1
  2C
  2G
  192.168.1.20
  K8s-node1
  2C
  2G
  192.168.1.30
  K8s-node2
  2C
  2G
  修改各主机的hosts文件:

  
  1、安装操作系统,选择最小化安装,安装完成后yum相关包如下:
  yum -y install wget ntpdate bind-utils iptables-services
  关闭firewall
  # systemctl stop firewalld.service #停止firewall
  # systemctl disable firewalld.service #禁止firewall开机启动
  # systemctl start iptables.service #重启防火墙
  # systemctl enable iptables.service #设置防火墙开机启动
  #iptables -A INPUT -p tcp --dport 4001 -m state --state new -j ACCEPT
  #iptables -A INPUT -p tcp --dport 2379 -m state --state new -j ACCEPT
  #iptables -A INPUT -p tcp --dport 2380 -m state --state new -j ACCEPT
  关闭selinux
  #setenforce 0
  # sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
  2、安装etcd
  git地址:https://github.com/coreos/etcd/releases/
  etcd中文文档:http://etcd.doczh.cn/documentation/
  下载安装包:https://github.com/coreos/etcd/releases/download/v3.3.8/etcd-v3.3.8-linux-amd64.tar.gz
  #tar -zxvf etcd-v3.3.8-linux-amd64.tar.gz
  #ln -s etcd-v3.3.8-linux-amd64 etcd
  #cd etcd
  #cp etcd* /bin/
  #etcd --version #确认是否可以使用
  #mkdir /etc/etcd # 创建etcd配置文件目录
  编辑etcd配置文件:vim /etc/etcd/etcd.conf修改下面的内容,nodes节点上按照IP地址进行相应修改,

  Node2节点,相应的修改node3节点
检查集群健康状态:etcdctl –endpoints http://192.168.1.10:2379 cluster-health
检查etcd集群的节点情况以及查看那台是leader节点
  Etcdctl –endpoints http://192.168.1.10:2379 member list
3、安装kubernetes    yum install kubernetes   (master、nodes都需要安装)
  安装完成后可以修改配置文件:
  配置文件在/etc/kubernetes目录下,MASTER上需要修改apiserverconfig两个配置文件,如果多个集群还需要修改controller-manager:
  Config配置中可以定义日志以及是否有特权访问主机上的硬件 --allow-privileged 主要设置KUBE_MASTER 以及KUBE_ETCD_SERVERS
  KUBE_LOGTOSTDERR定义将错误日志记录到stderr或者在文件中记录
  KUBE_LOG_LEVEL定义日志级别
  KUBE_ALLOW_PRIV是否允许运行特权容器。

  apiserver配置文件如下,其中KUBE_API_ARGS项,可配置安全证书,没有可忽略
apiserver中配置KUBE_API_ADDRESS、KUBE_API_PORT、KUBE_SERVICE_ADDRESSES
  在node节点上主要配置kubelet配置文件 KUBELET_ADDRESS、KUBELET_PORT、KU证忽略书BELET_HOSTNAME、KUBELET_API_SERVER
5、安装、配置flannel 下载地址 https://github.com/coreos/flannel/releases/download/v0.10.0/flannel-v0.10.0-linux-amd64.tar.gz
  下载解压后主要有flanneld、mk-docker-opts.sh这两个文件,其中flanneld为主要的执行文件,sh脚本用于生成Docker启动参数。
  需要将flanneld拷贝到/usr/bin 目录下,启动时调用。
  所有服务器上配置vim /usr/lib/systemd/system/flanneld.service
所有服务器编辑配置文件/etc/sysconfig/flanneld,并且设置etcd的地址。
在etcd中添加一条网络配置记录,这个配置将用于flanneld分配给每个docker的虚拟IP地址段,根据需要修改DOCKER的网络地址段。
  etcdctl set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }'
  注意:flanneld将覆盖docker0网桥,如果docker服务已经启动,需要停止docker服务。
  启动flanneld服务
  systemctl restart flannel
  设置docker0网桥的ip地址
  source /run/flannel/subnet.env
  ifconfig docker0 ${FLANNEL_SUBNET}
  完成后确认网络接口docker0的IP地址属于flannel0的子网
  # ip a
6、启动kubernetes\etcd\flannel\docker
  master节点上启动 etcd(也可以单独部署) flannelsystemctl start kube-apiserver 、kube-controller-manager、kube-scheduler
  也可以写成脚本来启动:
  for master in etcd flanneld kube-apiserver kube-controller-manager kube-scheduler; do systemctl restart $master; done
  node节点上启动 systemctl start flannel kube-proxt 、 systemctl start kubelet、 systemctl start docker
  for node in etcd flanneld kube-proxy kubelet docker;do systemctl restart $node;done
  7、验证kubernetes集群是否正常
  kubectl get nodes获取所有节点信息
      
  # kubectl cluster-info
  kubectl describe node d8s-node1获取详细的节点信息,包括该节点的系统配置、CPU、内存、可以创建的pods数量
    kubectl get namespace



页: [1]
查看完整版本: kubernetes集群安装部署