Kubernetes 入门(1)基本概念

1. Kubernetes简介

作为一个目前在生产环境已经广泛使用的开源项目 Kubernetes 被定义成一个用于自动化部署、扩容和管理容器应用的开源系统;它将一个分布式软件的一组容器打包成一个个更容易管理和发现的逻辑单元。

Kubernetes 是希腊语『舵手』的意思,它最开始由 Google 的几位软件工程师创立,深受公司内部 Borg 和 Omega 项目的影响,很多设计都是从 Borg 中借鉴的,同时也对 Borg 的缺陷进行了改进,Kubernetes 目前是 Cloud Native Computing Foundation (CNCF) 的项目并且是很多公司管理分布式系统的解决方案。

在 Kubernetes 统治了容器编排这一领域之前,其实也有很多容器编排方案,例如 compose 和 Swarm,但是在运维大规模、复杂的集群时,这些方案基本已经都被 Kubernetes 替代了。

2. Node

Node 可以是一台物理机,也可以是虚拟机。

2.1 Node状态

当我们拿到这台服务器后,首先我们登录服务器查看下服务器的基本配置和信息。其实对于一个新加入 K8S 集群的 Node 也是一样,需要先检查它的状态,并将状态上报至集群的 master 。

2.1.1 IP地址

首先,我们所关心的是我们服务器的 IP 地址,包括内网 IP 和外网 IP。对应于 K8S 集群的话这个概念是类似的,内部 IP 可在 K8S 集群内访问,外部 IP 可在集群外访问。

2.1.2 信息

我们需要看下服务器的基本信息,比如看看系统版本信息, cat /etc/issue 或者 cat /etc/os-release 等方法均可查看。对于 K8S 集群会将每个 Node 的这些基础信息都记录下来。

image.png

2.1.3 容量

我们通常也都会关注下,我们有几个核心的 CPU ,可通过 cat /proc/cpuinfo 查看,有多大的内存 通过 cat /proc/meminfo 或 free 等查看。对于 K8S 集群,会默认统计这些信息,并计算在此 Node 上可调度的 Pod 数量。

image.png

2.1.4 条件

对于我们拿到的服务器,我们根据上述的一些基本信息进行判断,这台机器是否能满足我们的需要。对 K8S 集群也同样,当判断上述信息均满足要求时候,便将集群内记录的该 Node 信息标记为 Ready (Ready = True),这样我们的服务器便正式的完成交付。

3. Deployment 和 Pod

3.1 Pod

作为 Kubernetes 集群中的基本单元,Pod 就是最小并且最简单的 Kubernetes 对象,这个简单的对象其实就能够独立启动一个后端进程并在集群的内部为调用方提供服务。

3.2 Deployment

提供了一种对 Pod 和 ReplicaSet 的管理方式,每一个 Deployment 都对应集群中的一次部署,是非常常见的 Kubernetes 对象

3.3 例如

在使用一台服务器时,我们通常需要编写一个主页index.html以及将其部署在web服务器上,对于 K8S 而言,我们想要的,能提供对 index.html 访问的服务便可理解为 Deployment 的概念,表明一种我们预期的目标状态。
而对于 web服务器 和 index.html 这个组合可以理解为其中的 Pod 概念,作为最小的调度单元。

4. Container Runtime

Docker 已经是容器技术的事实标准了,它让开发者将自己的应用以及依赖打包到一个可移植的容器中,让应用程序的运行可以实现环境无关。

如果我们想要将当前主页部署在多台服务器上,我们可以在服务器上安装docker,此时,我们需要做的事情,也便只是将我们的服务构建成一个镜像,需要编写一个 Dockerfile,构建一个镜像并部署到每台服务器上便可。

我们能够通过 Docker 实现进程、网络以及挂载点和文件系统隔离的环境,并且能够对宿主机的资源进行分配,这能够让我们在同一个机器上运行多个不同的 Docker 容器,任意一个 Docker 的进程都不需要关心宿主机的依赖,都各自在镜像构建时完成依赖的安装和编译等工作,这也是为什么 Docker 是 Kubernetes 项目的一个重要依赖。

而 Docker 如果对应于 K8S 集群中的概念,便是 Container Runtime,这里还有其他的选择,比如 rkt,runc 和其他实现了 OCI 规范的运行时

参考资料

《Kubernetes 从上手到实践》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/391236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python程序互斥体

Python程序互斥体 有时候我们需要程序只运行一个实例,在windows平台下我们可以很简单的用mutex实现这个目的。   在开始时,程序创建了一个命名的mutex,这个mutex可以被其他进程检测到。 这样如果程序已经启动,再次运行时的进程就…

890

890 转载于:https://www.cnblogs.com/Forever77/p/11528605.html

android 西班牙_分析西班牙足球联赛(西甲)

android 西班牙The Spanish football league commonly known as La Liga is the first national football league in Spain, being one of the most popular professional sports leagues in the world. It was founded in 1929 and has been held every year since then with …

Goalng软件包推荐

2019独角兽企业重金招聘Python工程师标准>>> 前言 哈喽大家好呀! 马上要迎来狗年了大家是不是已经怀着过年的心情了呢? 今天笔者给大家带来了一份礼物, Goalng的软件包推荐, 主要总结了一下在go语言中大家开源的优秀的软件, 大家了解之后在后续使用过程有遇到如下软…

Kubernetes 入门(2)基本组件

1. C/S架构 Kubernetes 遵循非常传统的客户端服务端架构,客户端通过 RESTful 接口或者直接使用 kubectl 与 Kubernetes 集群进行通信,这两者在实际上并没有太多的区别,后者也只是对 Kubernetes 提供的 RESTful API 进行封装并提供出来。 左侧…

caioj1522: [NOIP提高组2005]过河

状态压缩的经典题。 按照一般做法,DP一维时间O(n),显然跑不过。考虑到石子较少,实际上有很长一段是一定可以跳到的,设两个石头分别在i点和j点,跳跃的路程为S到T。那么从i点可以跳到iS到iT。从j-T到j-S可以跳到J。显然当…

Dev控件使用CheckedListBoxControl获取items.count为0 的解决方法

CheckedListBoxControl,我使用DataSource属性,给其绑定了一个List对象。界面显示都挺正常的,当若干个项的复选框被选中的后,它的checkedListBoxControl1.CheckedItems也是正常的。 唯独的问题是在代码中得到的checkedListBoxContr…

如何启动软件YouTube频道

Hi, I’m Beau and I run the freeCodeCamp.org YouTube channel. 嗨,我是Beau,我运行了freeCodeCamp.org YouTube频道 。 For the first few years of our channel’s life, we had less than 100,000 subscribers. When we published new videos, we …

【powerdesign】从mysql数据库导出到powerdesign,生成数据字典

使用版本powerdesign16.5,mysql 5.5,windows 64 步骤: 1.下载mysql驱动【注意 32和64的驱动都下载下来,具体原因查看第三步 依旧会报错处】 下载地址:https://dev.mysql.com/downloads/connector/odbc/5.3.html 请下…

php amazon-s3_推荐亚马逊电影-一种协作方法

php amazon-s3Item-based collaborative and User-based collaborative approach for recommendation system with simple coding.推荐系统的基于项目的协作和基于用户的协作方法,编码简单。 推荐系统概述 (Overview of Recommendation System) There are many met…

[高精度乘法]BZOJ 1754 [Usaco2005 qua]Bull Math

模板题目&#xff0c;练练手~ #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> using namespace std;int s1[2333]; int s2[2333]; int Out[2333]; string one,two;void Debug(){for(int i0;i<one.length();i){pri…

python:使用Djangorestframework编写post和get接口

1、安装django pip install django 2、新建一个django工程 python manage.py startproject cainiao_monitor_api 3、新建一个app python manage.py startapp monitor 4、安装DRF pip install djangorestframework 5、编写视图函数 views.py from rest_framework.views import A…

Kubernetes 入门(3)集群安装

1. kubeadm简介 kubeadm 是 Kubernetes 官方提供的一个 CLI 工具&#xff0c;可以很方便的搭建一套符合官方最佳实践的最小化可用集群。当我们使用 kubeadm 搭建集群时&#xff0c;集群可以通过 K8S 的一致性测试&#xff0c;并且 kubeadm 还支持其他的集群生命周期功能&#…

Angular Material 攻略 04 Icon

Icon 网页系统中的Icon虽然说很简单&#xff0c;但是其中的学问还是有很多的&#xff0c;我们常用的Icon库有FontAwesome、Iconfont等&#xff0c;我们选择了Angular Material这个组件库&#xff0c;就介绍Material Icons吧。 对Icon感兴趣的同学可以看一下这里 Material Desig…

【9303】平面分割

Time Limit: 10 second Memory Limit: 2 MB 问题描述 同一平面内有n&#xff08;n≤500&#xff09;条直线&#xff0c;已知其中p&#xff08;p≥2&#xff09;条直线相交与同一点&#xff0c;则这n条直线最多能将平面分割成多少个不同的区域&#xff1f; Input 两个整数n&am…

简述yolo1-yolo3_使用YOLO框架进行对象检测的综合指南-第一部分

简述yolo1-yolo3重点 (Top highlight)目录&#xff1a; (Table Of Contents:) Introduction 介绍 Why YOLO? 为什么选择YOLO&#xff1f; How does it work? 它是如何工作的&#xff1f; Intersection over Union (IoU) 联合路口(IoU) Non-max suppression 非最大抑制 Networ…

django:资源网站汇总

Django REST framework官网 http://www.sinodocs.cn/ django中文网 https://www.django.cn/ 转载于:https://www.cnblogs.com/gcgc/p/11542068.html

Kubernetes 入门(4)集群配置

1. 集群配置 报错&#xff1a; message: ‘runtime network not ready: NetworkReadyfalse reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized’ 原因&#xff1a;cni未被初始化&#xff08;CNI 是 Container Network In…

【例9.8】合唱队形

【例9.8】合唱队形 链接&#xff1a;http://ybt.ssoier.cn:8088/problem_show.php?pid1264 时间限制: 1000 ms 内存限制: 65536 KB【题目描述】 N位同学站成一排&#xff0c;音乐老师要请其中的(N-K)位同学出列&#xff0c;使得剩下的K位同学排成合唱队形。 合唱队形是…

scrum流程 规划 冲刺_Scrum –困难的部分2:更快地冲刺

scrum流程 规划 冲刺In the first part, I presented my favorite list of Scrums hard parts and how to work around them. In the second part, I offer you a colorful bouquet of workarounds as well. Have fun!在第一部分中 &#xff0c;我介绍了我最喜欢的Scrum困难部分…