K8S学习笔记 | 如何部署 Kubernetes master 节点

做者:宋净超linux

宋净超(Jimmy Song),TalkingData 容器技术负责人,微服务和云原生应用布道者。2017 年初开始研究 Kubernetes,至目前已发表近 40 篇 Kubernetes 学习笔记。同时,他也是「K8sMeetup 中国社区」的活跃者,见证了「K8sMeetup 中国社区」的一路成长。git

经 Jimmy Song 本人受权, 从本周开始,K8sMeetup 中国将转载他的 Kubernetes 学习笔记,由浅入深地分享他在学习过程当中的收获。7 月 22 日,北京 K8S 2 周年Meetup,Jimmy Song 也将到现场进行分享,欢迎 Kubernetes 爱好者届时参与。github

kubernetes master 节点包含的组件:api

kube-apiserver
kube-scheduler
kube-controller-manager
目前这三个组件须要部署在同一台机器上。安全

kube-scheduler、kube-controller-manager 和 kube-apiserver 三者的功能紧密相关;
同时只能有一个 kube-scheduler、kube-controller-manager 进程处于工做状态,若是运行多个,则须要经过选举产生一个 leader;
本文档记录部署一个三个节点的高可用 kubernetes master 集群步骤。(后续建立一个 load balancer 来代理访问 kube-apiserver 的请求)微服务

暂时未实现master节点的高可用。学习

TLS 证书文件spa

pem和token.csv证书文件咱们在TLS证书和秘钥这一步中已经建立过了。咱们再检查一下。
图片描述代理

下载最新版本的二进制文件server

有两种下载方式

方式一

从 github release 页面 下载发布版 tarball,解压后再执行下载脚本
图片描述
方式二

从 CHANGELOG页面 下载 client 或 server tarball 文件

server 的 tarball kubernetes-server-linux-amd64.tar.gz 已经包含了 client(kubectl) 二进制文件,因此不用单独下载kubernetes-client-linux-amd64.tar.gz文件;

图片描述
配置和启动 kube-apiserver

建立 kube-apiserver的service配置文件

serivce配置文件/usr/lib/systemd/system/kube-apiserver.service内容:

图片描述

图片描述

图片描述

--authorization-mode=RBAC 指定在安全端口使用 RBAC 受权模式,拒绝未经过受权的请求;
kube-scheduler、kube-controller-manager 通常和 kube-apiserver 部署在同一台机器上,它们使用非安全端口和 kube-apiserver通讯;
kubelet、kube-proxy、kubectl 部署在其它 Node 节点上,若是经过安全端口访问 kube-apiserver,则必须先经过 TLS 证书认证,再经过 RBAC 受权;
kube-proxy、kubectl 经过在使用的证书里指定相关的 User、Group 来达到经过 RBAC 受权的目的;
若是使用了 kubelet TLS Boostrap 机制,则不能再指定 --kubelet-certificate-authority、--kubelet-client-certificate 和 --kubelet-client-key 选项,不然后续 kube-apiserver 校验 kubelet 证书时出现 ”x509: certificate signed by unknown authority“ 错误;
--admission-control 值必须包含 ServiceAccount;
--bind-address 不能为 127.0.0.1;
runtime-config配置为rbac.authorization.k8s.io/v1beta1,表示运行时的apiVersion;
--service-cluster-ip-range 指定 Service Cluster IP 地址段,该地址段不能路由可达;
缺省状况下 kubernetes 对象保存在 etcd /registry 路径下,能够经过 --etcd-prefix 参数进行调整;
完整 unit 见 kube-apiserver.service
图片描述

图片描述

若是有组件report unhealthy请参考:https://github.com/kubernetes...

完整 unit 见 kube-controller-manager.service

启动 kube-controller-manager
图片描述

图片描述

相关文章
相关标签/搜索