本文将介绍配置Kubernetes集群,kubernetes集群由master节点和slave节点组成。
Master节点上运行如下服务: etcd (etcd服务也可以单独运行,不一定要运行在Master节点上) kube-apiserver kube-controller-manager kube-scheduler Kubelet kube-proxy
Slave节点上运行如下服务: Kubelet kube-proxy
一、环境介绍 操作系统版本:CentOS linux 7.2 64bit Master节点:192.168.115.5/24 vm1 Slave节点1:192.168.115.6/24 vm2 Kubernets和etcd软件采用yum方式安装 Kubernets版本:1.5.2 Etcd版本:2.2.5
二、Master节点配置
# yum -y install kubernetes etcd
1、通用配置文件
# grep -v '^#' /etc/kubernetes/config KUBE_LOG_LEVEL="--v=0" KUBE_ALLOW_PRIV="--allow-privileged=false" KUBE_MASTER="--master=http://192.168.115.5:8080" //apiserver的地址
2、apiserver配置文件
# grep -v '^#' /etc/kubernetes/apiserver KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" //apiserver的监听地址 # KUBE_API_PORT="--port=8080" //apiserver的监听端口 # KUBELET_PORT="--kubelet-port=10250" //kubelet服务的监控端口 KUBE_ETCD_SERVERS="--etcd-servers=http://0.0.0.0:2379" //etcd服务的地址 KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" //cluster服务的网段 KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota" //这里为了避免做用户认证,取消掉了ServiceAccount参数 KUBE_API_ARGS=""
3、controller-manager配置文件,无需特殊的配置
# cat /etc/kubernetes/controller-manager
4、etcd配置文件
# grep -v '^#' /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://0.0.0.0:2379" //集群服务监听地址和端口
5、通用配置文件
# grep -v '^#' /etc/kubernetes/config KUBE_LOGTOSTDERR="--logtostderr=true" KUBE_LOG_LEVEL="--v=0" KUBE_ALLOW_PRIV="--allow-privileged=false" KUBE_MASTER="--master=http://192.168.115.5:8080" //master服务的apiserver地址和端口
6、kubelet服务配置文件
# grep -v '^#' /etc/kubernetes/kubelet KUBELET_ADDRESS="--address=192.168.115.7" //slave的监听地址 KUBELET_HOSTNAME="--hostname-override=192.168.115.7" //slave的主机名 KUBELET_API_SERVER="--api-servers=http://192.168.115.5:8080" //master服务的apiserver地址和端口 KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=gcr.io/google_containers/pause" //kubenet服务的启动需要依赖的镜像pull地址 KUBELET_ARGS=""
7、kube-proxy的配置文件,一般无需特别的配置
# cat /etc/kubernetes/proxy
三、Slave节点配置
# yum -y install kubernetes
1、通用配置文件
# grep -v '^#' /etc/kubernetes/config KUBE_LOGTOSTDERR="--logtostderr=true" KUBE_LOG_LEVEL="--v=0" KUBE_ALLOW_PRIV="--allow-privileged=false" KUBE_MASTER="--master=http://192.168.115.5:8080" //master服务的apiserver地址和端口
2、kubelet服务配置文件
# grep -v '^#' /etc/kubernetes/kubelet KUBELET_ADDRESS="--address=192.168.115.7" //slave的监听地址 KUBELET_HOSTNAME="--hostname-override=192.168.115.7" //slave的主机名 KUBELET_API_SERVER="--api-servers=http://192.168.115.5:8080" //master服务的apiserver地址和端口 KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=gcr.io/google_containers/pause" //kubenet服务的启动需要依赖的镜像pull地址 KUBELET_ARGS=""
3、kube-proxy的配置文件,一般无需特别的配置
# cat /etc/kubernetes/proxy
四、服务的启动 1、master节点
# systemctl start etcd # systemctl start kube-apiserver # systemctl start kube-controller-manager # systemctl start kube-scheduler # systemctl start kubelet # systemctl start kube-proxy
2、slave节点
# systemctl start kubelet # systemctl start kube-proxy
五、验证集群是否正常工作
# kubectl get nodes //在master节点运行 # kubectl cluster-info
六、导入pause镜像 此镜像为k8s的根容器镜像,需要访问国外网站方式下载,因而下载完成后采用本地导入的方式
# docker load < pause.tar