tset123 发表于 2019-2-21 11:45:54

Kubernetes实战[1]: 基于kubernetes构建Docker集群环境实战

  kubernetes是google公司基于docker所做的一个分布式集群,有以下主件组成
  etcd: 高可用存储共享配置和服务发现,作为与minion机器上的flannel配套使用,作用是使每台 minion上运行的docker拥有不同的ip段,最终目的是使不同minion上正在运行的docker containner都有一个与别的任意一个containner(别的minion上运行的docker containner)不一样的IP地址。
  flannel: 网络结构支持
  kube-apiserver: 不论通过kubectl还是使用remote api 直接控制,都要经过apiserver
    kube-controller-manager: 对replication controller, endpoints controller, namespace controller, and serviceaccounts controller的循环控制,与kube-apiserver交互,保证这些controller工作
   kube-scheduler: Kubernetes scheduler的作用就是根据特定的调度算法将pod调度到指定的工作节点(minion)上,这一过程也叫绑定(bind)
  kubelet: Kubelet运行在Kubernetes Minion Node上. 它是container agent的逻辑继任者
  kube-proxy: kube-proxy是kubernetes 里运行在minion节点上的一个组件, 它起的作用是一个服务代理的角色
  图为GIT+Jenkins+Kubernetes+Docker+Etcd+confd+Nginx+Glusterfs架构:
http://s1.运维网.com/images/20180531/1527733313489584.png
1、环境介绍及准备:
1.1 物理机操作系统
  物理机操作系统采用Centos7.4 64位,细节如下。
# uname -a
Linux etcd 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)1.2 主机信息
  本文准备了五台机器用于部署k8s的运行环境(可把Master、etcd、registry放在同一台上),细节如下:
  | 节点         | 主机名    | IP   |
  | Etcd         | etcd   | 10.0.0.10 |
  | Kubernetes Master| k8s-master | 10.0.0.11 |
  | Kubernetes Node 1| k8s-node-1 | 10.0.0.12 |
  | Kubernetes Node 2| k8s-node-2 | 10.0.0.13 |
  | Kubernetes Node 3| k8s-node-3 | 10.0.0.14 |
设置五台机器的主机名:
  Etcd上执行:
#hostnamectl --static set-hostnameetcd  Master上执行:
#hostnamectl --static set-hostnamek8s-master  Node1上执行:
#hostnamectl --static set-hostnamek8s-node-1  Node2上执行:
# hostnamectl --static set-hostnamek8s-node-2  Node3上执行:
# hostnamectl --static set-hostnamek8s-node-3  在五台机器上设置hosts,均执行如下命令:
echo '10.0.0.10    etcd               #添加hosts解析
10.0.0.11    k8s-master
10.0.0.12    k8s-node-1
10.0.0.13    k8s-node-2
10.0.0.14    k8s-node-3
10.0.0.10    kube-registry' >> /etc/hosts1.3 关闭五台机器上的防火墙
systemctl disable firewalld.service
systemctl stop firewalld.service  安装NTP并启动
# yum -y install ntp
# systemctl start ntpd
# systemctl enable ntpd2、部署etcd
 k8s运行依赖etcd,需要先部署etcd,本文采用yum方式安装:
# yum install etcd -yyum安装的etcd默认配置文件在/etc/etcd/etcd.conf。编辑配置文件,更改以下带颜色部分信息:
#
ETCD_NAME=master                           #
页: [1]
查看完整版本: Kubernetes实战[1]: 基于kubernetes构建Docker集群环境实战