kubernetes集群部署分为Master节点和node节点两种节点,Master节点也可以同时作为node节点使用,组件有以下几种:
Apiserver:提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制。整个集群中其他角色只有通过Apiserver才能访问etcd。CLI工具kubectl也是通过apiserver来对整体集群进行访问控制。
Controller-manager:负责维护集群的状态,比如故障检测、自动扩展、滚动更新等。一组k8s master上同一时间只有一个controller-manager角色进行工作,因为要避免控制冲突。
Scheduler:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上。一组k8s master上同一时间只有一个scheduler角色进行工作,同样因为要避免控制冲突。
Kubelet:负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理。为支持k8s master的高可用,由kubelet提供稳定的容器运行功能(static pod),通过运行容器的方式启动
具体配置文件及注释如下:
一、Master节点
1、 /etc/kubernetes/apiserver
###
# kubernetes system config
#
# The following values are used to configure the kube-apiserver
#
# The address on the local server to listen to.
#aipServer的监听地址,默认为127.0.0.1,若要配置集群,则要设置为0.0.0.0才能被其他主机找到
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
#apiserver的监听端口
# The port on the local server to listen on.
KUBE_API_PORT="--port=8080"
# kubelet的监听端口,若只作为Master节点则可以不配置
# Port minions listen on
KUBELET_PORT="--kubelet-port=10250"
#etcd的地址,若etcd是集群,则配置集群所有地址,用逗号隔开