Centos7.3Kubernetes集群安装部署

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiegh2014/article/details/77848850
•Kubernetes集群组件:
  - etcd 一个高可用的K/V键值对存储和服务发现系统
  - flannel 实现夸主机的容器网络的通信
  - kube-apiserver 提供kubernetes集群的API调用
  - kube-controller-manager 确保集群服务
  - kube-scheduler 调度容器,分配到Node
  - kubelet 在Node节点上按照配置文件中定义的容器规格启动容器
  - kube-proxy 提供网络代理服务
集群架构图

一、环境准备
目前各相关组件版本如下:
kubernetes-1.5.2
docker-1.12.6
flannel-0.7.0
etcd-3.1.3

kubernetes环境角色如下:
192.168.199.190(4核,4g,50g硬盘) kubernetes master和etcd server
192.168.199.191(4核,4g,50g硬盘) kubernetes node1
192.168.199.192(4核,4g,50g硬盘) kubernetes node2
192.168.199.193(4核,4g,50g硬盘) kubernetes node2
192.168.199.194(4核,4g,50g硬盘) kubernetes node2

二、安装及配置

各组件用途
kube master主要以下组件:
1、kube-apiserver
k8s的管理接口
2、kube-scheduer

k8s调度器,容器的启动、迁移、扩容缩减时候,选择哪个node,就看它了。
3、kube-controller-manager
k8s对node的控制行为,比如怎么去调用node启动一个容器。

kube node主要以下组件:
1、kubelet
负责node的管理,基本所有操作都靠它。
2、kube-proxy
每个node里的container都在一个私有网络中,kube-proxy的作用就是做一个反向代理,让访问者访问这个node的时候,可以转发到内部对应的container。
	
etcd
1、作为kubernetes的数据库,存储了k8s自身的信息、以及各种业务容器信息等。
2、存储flannel网络配置信息,供各节点协调。


安装master节点:
yum install etcd -y    安装 etcd 节点
yum install kubernetes-master -y	安装 k8s master 节点
	
编辑配置文件/etc/etcd/etcd.conf
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.199.190:2379"
	
启动服务
systemctl enable etcd
systemctl start etcd
	
编辑配置文件 /etc/kubernetes/apiserver
KUBE_API_ADDRESS="--address=0.0.0.0"
KUBE_ETCD_SERVERS="--etcd_servers=http://192.168.199.190:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
KUBE_API_ARGS=""
	
编辑配置文件/etc/kubernetes/controller-manager
KUBE_CONTROLLER_MANAGER_ARGS="--node-monitor-grace-period=10s --pod-eviction-timeout=10s"
	
编辑配置文件/etc/kubernetes/config 
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow_privileged=false"
KUBE_MASTER="--master=http://192.168.199.190:8080"
	
启动服务
systemctl enable kube-apiserver kube-scheduler kube-controller-manager
systemctl start kube-apiserver kube-scheduler kube-controller-manager
			
安装k8s node 节点:(node1、node2、node3 、node4)
yum install kubernetes-node flannel docker -y
	
编辑配置文件/etc/kubernetes/config 
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow_privileged=false"
KUBE_MASTER="--master=http://192.168.199.190:8080"
	
编辑配置文件/etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=127.0.0.1"
KUBELET_HOSTNAME="--hostname_override=192.168.199.191" #节点IP
KUBELET_API_SERVER="--api_servers=http://192.168.199.190:8080"
KUBELET_ARGS="--pod-infra-container-image=kubernetes/pause"
	
启动服务
systemctl enable kubelet kube-proxy
systemctl start kubelet kube-proxy


k8s node 节点配置 flannel
初始化flannel的etcd配置
etcdctl -C 192.168.199.190:2379 set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }'
	
编辑配置文件/etc/sysconfig/flanneld
	
/etc/sysconfig/flanneld
FLANNEL_ETCD_PREFIX="/coreos.com/network"
	
systemctl enable flanneld
systemctl start flanneld

猜你喜欢

转载自blog.csdn.net/xiegh2014/article/details/77848850