DevOps云原生应用:在centos上部署kubernetes集群
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DevOps云原生应用:在centos上部署kubernetes集群相关的知识,希望对你有一定的参考价值。
本系列文档介绍使用二进制部署最新 kubernetes v1.14.2 集群的所有步骤,而不是使用 kubeadm 等自动化方式来部署集群。本文档主要适合于那些有一定 kubernetes 基础,想通过一步步部署的方式来学习和了解系统配置、运行原理的人。环境信息:
-
OS 系统: Centos7.6 ( core )
-
kubernetes版本:v1.14.2
-
ETCD数据库:v3.3.13
-
Network插件:Flanneld 0.11.0
-
Docker 版本: 18.09.6-ce
-
K8s插件:CoreDns,Heapster,Influxdb,Grafana,Dashboard,Efk,Metrics-server
- Docker仓库:Harbor
架构概览:
其中master节点中kube-apiserverjiy基于hapr
组件访问策略
kube-apiserver:
-
基于Keepalived+ Haproxy 四层透明代理实现高可用;
-
开启非安全端口 8080 和关闭匿名访问,基于token访问;
-
在安全端口 6443 接收 https 请求;
-
严格的认证和授权策略 (x509、token、RBAC);
-
开启 bootstrap token 认证,支持 kubelet TLS bootstrapping;
- 使用 https 访问 kubelet、etcd,加密通信;
kube-controller-manager:
-
3 节点高可用;
-
开启安全端口,在安全端口 10252 接收 https 请求;
-
使用 kubeconfig 访问 apiserver 的安全端口;
-
自动 approve kubelet 证书签名请求 (CSR),证书过期后自动轮转;
- 各 controller 使用自己的 ServiceAccount 访问 apiserver;
kube-scheduler:
- 3 节点高可用;
- 使用 kubeconfig 访问 apiserver 的安全端口;
kubelet:
- 使用 kubeadm 动态创建 bootstrap token,而不是在 apiserver 中静态配置;
- 使用 TLS bootstrap 机制自动生成 client 和 server 证书,过期后自动轮转;
- 在 KubeletConfiguration 类型的 JSON 文件配置主要参数;
- 关闭只读端口,在安全端口 10250 接收 https 请求,对请求进行认证和授权,拒绝匿名访问和非授权访问;
- 使用 kubeconfig 访问 apiserver 的安全端口;
kube-proxy:
- 使用 kubeconfig 访问 apiserver 的安全端口;
- 在 KubeProxyConfiguration 类型的 JSON 文件配置主要参数;
- 使用 ipvs 代理模式;
以上是关于DevOps云原生应用:在centos上部署kubernetes集群的主要内容,如果未能解决你的问题,请参考以下文章
[云原生专题-60]:Kubesphere云治理-DevOps-自动化开发与自动化上云部署流程概述