共计 3078 个字符,预计需要花费 8 分钟才能阅读完成。
本文将介绍配置 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