Kubernetes----二进制集群(单master节点部署)
一:实验环境
本次实验搭建部署是基于上一篇的基础上继续做的。
在 Master 上,要部署三大核心组件:
kube-apiserver:是集群的统一入口,各组件协调者,所有对象资源的增删改查和监听操作都交给 APIServer 处理后再提交给 Etcd 存储;
kube-controller-manager:处理群集中常规后台任务,一个资源对应一个控制器,而 controller-manager 就是负责管理这些控制器的;
kube-scheduler:根据调度算法为新创建的 Pod 选择一个 Node 节点,可以任意部署,可以部署在同一个节点上,也可以部署在不同节点上。
在 node上,要部署三大核心组件 :
kubelet:是master在node节点上的agent,可以管理本机运行容器的生命周期,例如创建容器、Pod挂载数据卷、下载secret、获取容器和节点状态等工作,kubelet 将每个 Pod转换成一组容器。
kube-proxy:在 node节点上实现 Pod网络代理,维护网络规划和四层负载均衡工作。
docker:容器
二:实验步骤
(在master上配置
)
1、master节点 生成证书
[root@localhost k8s]# unzip master.zip ‘解压master压缩包’
[root@localhost k8s]# chmod +x controller-manager.sh ‘给controll脚本加上权限’
[root@localhost k8s]# mkdir /opt/kubernetes/{cfg,bin,ssl} -p
[root@localhost k8s]# mkdir k8s-cert ‘创建 apiserver自签证书的目录’
[root@localhost k8s]# cd k8s-cert/
2、编写证书生成脚本
[root@localhost k8s-cert]# vim k8s-cert.sh
#编写ca证书的配置文件
cat > ca-config.json <<EOF
{
"signing": {
"default": {
"expiry": "87600h"
},
"profiles": {
"kubernetes": {
"expiry": "87600h",
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
]
}
}
}
}
EOF
#编写ca签名证书文件
cat > ca-csr.json <<EOF
{
"CN": "kubernetes",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "Beijing",
"ST": "Beijing",
"O": "k8s",
"OU": "System"
}
]
}
EOF
#使用签名证书生成ca.pem、ca-key.pem文件
cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
#编写apiserver的签名证书
#注意:master2节点和LB节点的IP地址是 为了之后的多master节点部署添加的
cat > server-csr.json <<EOF
{
"CN": "kubernetes",
"hosts": [
"10.0.0.1",
"127.0.0.1",
"192.168.48.152", ‘master1节点’
"192.168.48.153", ‘master2节点’
"192.168.48.100", ‘VIP地址’
"192.168.48.139", ‘nginx负载调度器(master节点)’
"192.168.48.137", ‘nginx负载调度器(backup节点)’
"kubernetes",
"kubernetes.default",
"kubernetes.default.svc",
"kubernetes.default.svc.cluster",
"kubernetes.default.svc.cluster.local"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "BeiJing",
"ST": "BeiJing",
"O": "k8s",
"OU": "System"
}