Kubernetes基础

Kubernetes (k8s)

简介

面向云原生应用 - 以Google Borg(Google内部容器管理平台)为原型重新设计和实现的容器管理和编排调用工具。

云原生模式

随着容器技术的出现以及应用面临的外部环境变化,云原生成为一种应用云化开发、部署和运行的主流方式。
容器 - 应用部署、运行和管理的基本单元
基础 - 应用的容器化和微服务化
核心 - 借助容器管理自动化平台进行动态编排和资源优化利用

功能

容器编排管理平台、微服务支撑平台、可移植的“云平台”

Kubernetes基本概念

Pods

一个pod是k8s中应用的最小单元,pod可以由多个容器组成,有如下特性:
1.单一IP地址
2.共享localhost
3.共享网络端口
4.共享卷(volumes)
5.共享IPC(inter-process communication)空间
在pod中的容器是通过localhost进行通信,而pod之间的通信是由services来实现的。

ReplicaSets

由于pods具有非永恒性(如果终止,便代表结束),那么我们如何处理同个pod的多个版本运行?
引入了replication controller,该控制器位于pod资源类型的上层来对其进行控制,可以有效防止失败/错误的发生;
由此有了replica set,代表指定数量的需要运行的pods的集合。

Services

在k8s中,一个服务(service)是pods之间通信的基础,就像pods之间的网络抽象。
注:服务允许k8s为pods设置单一的DNS记录。

Deployments

部署资源类型(deployment resource type)位于replica set的上层操作。
一般来说,升级需要替换整个replica set,这样会导致应用停机进行升级;因此,k8s采用滚动升级(rolling upgrade), 使得我们可以不用停机就可以进行升级。

总结

Deployments控制replica sets,然后replica sets控制pods。
注意:使用部署资源类型时仍然需要用服务访问。

k8s相关工具

Install and Set Up kubectl

Kubernetes命令行工具,允许用户使用指令来管理k8s集群。

Install Minikube

Minikube是为了开发者能在个人电脑上运行k8s而提供的一套工具,Go语言编写,通过调用虚拟化管理程序,创建出一个运行在虚拟机内的单节点集群。

VM driver documentation

1
minikube start --driver=<driver_name>

👆Enter the name of the hypervisor you installed in lowercase letters where <driver_name> is mentioned below.
Driver is Docker

推荐文章

  1. kubernetes1.13.1+etcd3.3.10+flanneld0.10集群部署
------------------------ The End ------------------------

本文标题:Kubernetes基础

文章作者:Lu, Ruihui

发布时间:2020年04月27日 - 05:42:23

最后更新:2021年04月13日 - 19:08:05

原始链接:https://github.com/cs-lurh0826/cs-lurh0826.github.io/Developer-Tools/kubernetes-basic/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

一花一世界,一叶一追寻