How To Build Kubernetes Platform (构建Kubernetes平台方案参考)
Architecture
Architecture Diagram
Non-Prod Environment

Prod Environment

Cluster Networking
Kubernetes supports for third-party netwroking the cluster via CNI plugin. for more infromation, please see Cluster Networking.
According to this chinese blog, Principles and Solutions of Kubernetes Networking from Yourongyun the three top of CNI providers for kubernetes cluster based on VMs are Project Calico, Flannel, Weave Net.
And also, here is comparison of variable networking solutions, https://github.com/xelatex/homepage/blob/master/source/_posts/Battlefield-Calico-Flannel-Weave-and-Docker-Overlay-Network.md
If just only considering performance, Project Calico should be perferred.
Container Repository
Two options as follows,
Option 1, Private Repository, such as Harbor.
Option 2, Repositories from Cloud Providers, such as AWS ECR.
Setup
We can refer to Picking the Right Solution in Kubernetes offical document to select a setup solution. Considering our goal of building a kuberletes platform based on VMs in our on-premises data center.
Minikube For Dev Env
Minikube can be engaed to create a kubernets development in a local local single machine.
For more information about Minikube, please read Running Kubernetes Locally via Minikube.
Kubeadm For Non-Prod Env
Using Kubeadm, we can build a kubernetes cluster for non-prod environment, which runs master key components as containers.
For more Kubeadm information, please see Using kubeadm to Create a Cluster.
Other IaaC For Prod Env
For creating a kubernetes cluster on VMs for Prod Env, We need to a infrastructure automation tool, such as Ansible, to have this done.
Here is a reference of Creating Kubernets Cluster via Ansible
Devops
CI/CD
Source Code Management
For small and agile web projects, such SaaS applications, considering adopting GitHub Flow. For more information, please refer to GitHub Flow.
For desk or client applications, such PC desk application, ISO/Android App, or being different time windows for delivery and release of applications, considering GitLab Flow. For more information please refer to Gitlab Flow.
PipeLine

Monitoring
Dashboard
Using Kubernetes Dashboard as Web-based UI for Kubernets clusters to manage the cluster itself along with its attendant resources.
For more information, please see Web-UI(Dashboard).
Metrics
Here is official suggested solution as follows. For more informaton, please see Tools for Monitoring Compute, Storage, and Network Resources
Grafana + Heapster / Prometheus + cAdvisor + InfluxDB
Heapster as a metircs aggregator and processor
InfluxDB time series database for storage
Grafana as a dashboarding and alerting solution
cAdvisor has been built in Kubelet, which collects host metrics like CPU, disk space, and memory utilization, in addition to container metrics.
And also, here is a practical example, How to Utilize the “Heapster + InfluxDB + Grafana” Stack in Kubernetes for Monitoring Pods.
Logging
APM
Security
Pod Service Account
For more information, please see the User Guide to Service Accounts.
Pod Security Policy
For more information, please see Pod Security Policies
Auth
Authentication
For more information, please see Authenticating
Support SSO integration, such as SAML,AD OpenID, Auth2?
Authenrization
For more information, please see https://kubernetes.io/docs/admin/authorization/
ABAC/RBAC
Multi-Tenancy
Hypernetes
For more information, please see Hypernetes: Bringing Security and Multi-tenancy to Kubernetes
Application Architecture
Microservice
Here is a chinese blog about how to select open source tools for building a micorservice.
https://mp.weixin.qq.com/s/bsuveX-E6E2fKZ24mj03nQ
Servcie Mesh
Training
Knowledge
Kubernets
Kubernetes Handbook (Chinese Version)
ETCD
For more information, please see ETCD Document.
Containter
Docker
For moe information, please see https://docs.docker.com/.
CRI-O
For more information, please see http://cri-o.io/.
OCI
OCI is a container specification named Open Container Initiative, consisting of OCI Runtime Specification and OCI Image Format
Networking
ip/route/iptables/ipvs etc
Container Netwroking
OpenVswitch
CNI - Calico/Flannel
CNM bridge/host/none/(overlay)plugin
Orgnization & People
How To Build Kubernetes Platform (构建Kubernetes平台方案参考)的更多相关文章
- 基于Kubernetes/K8S构建Jenkins持续集成平台(下)
基于Kubernetes/K8S构建Jenkins持续集成平台(下) Jenkins-Master-Slave架构图回顾: 安装和配置NFS NFS简介 NFS(Network File System ...
- 基于Kubernetes/K8S构建Jenkins持续集成平台(上)-1
基于Kubernetes/K8S构建Jenkins持续集成平台(上)-1 Jenkins的Master-Slave分布式构建 什么是Master-Slave分布式构建 Jenkins的Master-S ...
- 基于Kubernetes/K8S构建Jenkins持续集成平台(上)-2
基于Kubernetes/K8S构建Jenkins持续集成平台(上)-2 Kubernetes实现Master-Slave分布式构建方案 传统Jenkins的Master-Slave方案的缺陷 Mas ...
- 基于Docker&Kubernetes构建PaaS平台基础知识梳理
点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 基于Docker&Kubernetes构建Paa ...
- 通过重新构建Kubernetes来实现更具弹性的容器编排系统
通过重新构建Kubernetes来实现更具弹性的容器编排系统 译自:rearchitecting-kubernetes-for-the-edge 摘要 近年来,kubernetes已经发展为容器编排的 ...
- bluemix部署(二)构建kubernetes工作环境
本文接上篇.在bluemix中构建kubernetes容器. 1.创建集群 左上角的三横,选容器,然后创建集群. 注意区域,免费版,给个名字,创建集群吧. 继续正在部署,这个可能要15-30分钟,真不 ...
- Kubernetes+Docker的云平台在CentOS7系统上的安装
Kubernetes+Docker的云平台在CentOS7系统上的安装 1.运行VirtualBox5. 2.安装CentOS7系统. 注意:选择Basic Server类型 安装过程略. 3.修改计 ...
- 使用 Elastic 技术栈构建 Kubernetes全栈监控
以下我们描述如何使用 Elastic 技术栈来为 Kubernetes 构建监控环境.可观测性的目标是为生产环境提供运维工具来检测服务不可用的情况(比如服务宕机.错误或者响应变慢等),并且保留一些可以 ...
- 10分钟搭建Kubernetes容器集群平台【转】
官方提供3种方式部署Kubernetes minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环境 ...
随机推荐
- iOS NSInteger/NSUInteger与int/unsigned int、long/unsigned long之间的区别!
在iOS开发中经常使用NSInteger和NSUInteger,而在其他的类似于C++的语言中,我们经常使用的是int.unsigned int.我们知道iOS也可以使用g++编译器,那么它们之间是否 ...
- 【hyddd驱动开发学习】DDK与WDK
最近尝试去了解WINDOWS下的驱动开发,现在总结一下最近看到的资料. 1.首先,先从基础的东西说起,开发WINDOWS下的驱动程序,需要一个专门的开发包,如:开发JAVA程序,我们可能需要一个JDK ...
- htm5 vido.js 播放器
js统制html5 [video]标签中视频的播放和停止 需求:页面中有2个普通按钮a,b.还有一个video标签,能成功播放出视频..我想要的效果是,点击a按钮,视频开始播放,点击b按钮,视频播 ...
- 用 SDL2 处理精灵图
上面就是一个精灵图,由多个固定间隔的图标组成.利用精灵图的好处就是不必将图标逐个读入内存进行操作.我们可以将精灵图中需要的部分用一个个矩形截取下来,然后再输出到渲染器上. 环境:SDL2 + VC++ ...
- Struts2基本使用
Struts2:本质servlet 1.接受页面参数 a.使用原生的ServletAPI接受(不推荐) request.getParameter(name) 获取元素request方式: --Http ...
- CSU_1216【异或最大值】
转自:http://blog.csdn.net/fuyukai/article/details/50366133 题目简述: 经典题目,求一个数组中两个数异或运算的最大值.题目极其简单,但是要求的复杂 ...
- bzoj 4197: [Noi2015]寿司晚宴【状压dp】
一个数内可能多个的质因数只有小于根号n的,500内这样的数只有8个,所以考虑状压 把2~n的数处理出小于根号500的质因数集压成s,以及大质数p(没有就是1),然后按p排序 根据题目要求,拥有一个质因 ...
- PostgreSQL - 转义字符
转载至:postgresql字符转义 前言 在PostgreSQL 9之前的版本中,可以直接使用反斜杠\进行转义:比如:\b表示退格, \n表示换行, \t表示水平制表符,\r标示回车,\f表示换页. ...
- 关于itchat用法的一篇博文
itchat的原理就是利用爬虫爬取了网页版微信的内容,并进行一系列的操作,运用微信,通过手机与电脑时登录的互通性,可以实现用微信对电脑的操作,通过itchat.msg_register方法,可以得到目 ...
- pkill 和 pgrep总结
查看进程ID和方便kill进程 pgrep -d 指定分隔符 pgrep -d ' ' -u root 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 -u p ...