DevOps云原生应用:在centos上部署kubernetes集群(1)

本系列文档介绍使用二进制部署最新 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 代理模式;

原文地址:https://blog.51cto.com/blief/2415729

时间: 2024-10-10 02:36:25

DevOps云原生应用:在centos上部署kubernetes集群(1)的相关文章

CentOS上安装Kubernetes集群(二)安装Docker

采用docker作为容器运行(目前业界主流与共识) 1. 必要的一些系统工具 # yum install -y yum-utils device-mapper-persistent-data lvm2 2. 添加docker源 # yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 可以采用国内的镜像加速服务,参照kubernetes的官方文档,这里使用阿里的镜

CentOS上安装Kubernetes集群(四)使用Traefi暴露Kubernetes服务

k8s的集群大多数情况需要对外服务,而服务暴露的方式有很多,这里选取traefik来讲解,其它就暂时不详细介绍,包括Istio,代后续更新后再补充上来.一句话,来不及解释,赶紧上车. Traefkik简介 Traefik是开源边缘路由器,类似 nginx.apache 那样的反向代理服务器.网关,代表系统接收请求,并找出负责处理这些请求的组件.Traefik自动发现适合您服务的配置,同时热更新支持多种负载均衡算法断路器,重试提供监控.管理 UI 界面用 go 语言开发,天然的拥抱 k8s Tra

在CentOS7上部署 Kubernetes集群

yum -y install  etcd docker  flannel kubenetes 一般会遇到没有k8s源的问题,先 yum update -y 看是否有效,如果还是没用就创建yum 源,再安装 kubenetes 如下操作: 创建yum源 vi virt7-docker-common-release.repo 加入以下内容: [virt7-docker-common-release] name=virt7-docker-common-release baseurl=http://cb

在CentOS上安装Hadoop集群(一)-- Centos系统配置

在CentOS上安装Hadoop集群(一) 1.  Centos的系统配置 1.1打开终端方式: 方式1:在桌面单击右键,>>Open in terminal 方式2:Applications菜单上选择System tools -> Terminal 打开了 1.2配置网络环境 查看ip地址命令:ifconfig 网络安装命令:setup 重启网络服务命令:service network restart 网络连接命令:ifup eth0 如图所示,电脑有个红叉表示网络未连接 ifconf

CentOS7部署Kubernetes集群

CentOS7部署Kubernetes集群 简介 Kubernetes是什么? Kubernetes一个用于容器集群的自动化部署.扩容以及运维的开源平台. 通过Kubernetes,你可以快速有效地响应用户需求: a.快速而有预期地部署你的应用 b.极速地扩展你的应用 c.无缝对接新的应用功能 d.节省资源,优化硬件资源的使用 我们希望培育出一个组件及工具的生态,帮助大家减轻在公有云及私有云上运行应用的负担. Kubernetes特点: a.可移植: 支持公有云,私有云,混合云,多重云(mult

使用kubeadm部署kubernetes集群

使用kubeadm部署kubernetes集群 通过docker,我们可以在单个主机上快速部署各个应用,但是实际的生产环境里,不会单单存在一台主机,这就需要用到docker集群管理工具了,本文将简单介绍使用docker集群管理工具kubernetes进行集群部署. 1 环境规划与准备 本次搭建使用了三台主机,其环境信息如下:| 节点功能 | 主机名 | IP || ------|:------:|-------:|| master | master |192.168.1.11 || slave1

Shell脚本快速部署Kubernetes集群系统

本文紧跟上节所讲的手动部署Kubernetes管理Docker篇所写,本篇主要内容利用Shell脚本完成快速部署Kubernetes集群.上节博文看过的朋友也能感觉到部署过程相对比较简单,那么,出于简化工作流程,推进运维自动化角度来说,于是花了2/3天时间写这个部署Kubernetes脚本. 运维工作中,常常会遇到部署各种各样的服务,建议:常规部署都应该尽量使用脚本完成,一方面提高自身脚本编写能力,另一方面推进运维自动化. 详细部署说明文档:http://lizhenliang.blog.51c

安装部署Kubernetes集群实战

kubernetes概述: Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制.Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本. 通过kubernetes可以实现的功能: 快速部署应用 快速扩展应用 无缝对接新的应用功能 节省资源,优化硬件资源的使用 我们的目

使用Rancher的RKE快速部署Kubernetes集群

简要说明: 本文共涉及3台Ubuntu机器,1台RKE部署机器(192.168.3.161),2台Kubernetes集群机器(3.162和3.163). 先在Windows机器上,将rke_linux-amd64从github上下载下来,重新命名为rke ,编辑好cluster.yml集群部署文件,使用putty提供的pscp命令,将文件上传到3.161机器上.在3.161机器上,执行rke命令,将集群部署到3.162和3.163机器上. 只要环境配置正确,部署非常快,整个集群5分钟搞定. 准