前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes概述

Kubernetes概述

作者头像
matt
发布2022-10-25 16:03:01
4960
发布2022-10-25 16:03:01
举报
文章被收录于专栏:CSDN迁移

Kubernetes概述

〇、Docker相关概念

docker常用的命令

代码语言:javascript
复制
# docker自动重启
docker run --restart always

# nginx启动命令
nginx -c /etc/nginx/nginx.conf -g 'daemon off;'

# 利用Dockerfile启动docker
docker build . -t go:v1 -f Dockerfile
在这里插入图片描述
在这里插入图片描述

一、Kubernetes是什么

Kubernetes(Google)是一个开源容器管理工具,负责容器部署,容器扩缩容以及负载平衡,与所有云提供商合作。可以理解为一个多容器管理解决方案。 本质上是一组服务器集群,可以在集群的各个节点上运行特定的dockers容器。

代码语言:javascript
复制
开发交付运维从代码到镜像(代码+配置),避免了很多运维时的错误。

# 配置开机自启
systemctl enable docker
systemctl daemon-reload   
systemctl start docker

# 查看docker进程
ps aux | grep docker
# 查看系统日志 -u选择模块 -f监控
journalctl -fu docker
在这里插入图片描述
在这里插入图片描述
  • K8S与Docker的关系 Docker提供容器的生命周期管理,Docker镜像构建运行时容器。但是,由于这些单独的容器必须通信,因此使用Kubernetes进行容器编排(Container Orchestration)。可以使用Kubernetes手动关联和编排在多个主机上运行的容器。

在容器上部署APP较在主机上部署,可以将容器本身与其他应用程序隔离,具备单独的库和二进制文件等。

二、Kubernetes特性

自我修复:宕机后其他节点新建容器 弹性伸缩:根据服务器并发情况,创建/删除容器 自动部署:yaml 自动回滚:版本回滚 服务发现和负载均衡 机密和配置共享管理

三、Kubernetes集群架构与组件

  1. 集群两类节点 master node、worker node 通过https进行通信。
  2. master node组件 API server(集群的统一入口,接受kubectl指令)、schduler(从多个worker node选举一个启动服务,etcd数据库)、controller manager(向worker node的kubelet发送指令)
  3. worker node组件 kubelet(master在node上的代理,向docker发送指令并管理本机容器)、kubeproxy(管理docker的网络代理、维护网络规则、四层负载均衡)
  4. etcd数据库 分布式键值存储系统(go编写),保存集群状态的数据,如Pod、Service等对象信息。

注:Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址。

在这里插入图片描述
在这里插入图片描述

架构理解: (1)各个节点部署时将注册信息添加到etcd数据库中(可修改库类型)。 (2)当指令通过kubectl发送给master node前,首先通过API Server查询etcd数据库,指令是否可信。 (3)若可信,通过scheduler选举算法选择一个已注册的节点作为启动服务节点,将结果返回给API Server。 (4)API Server将节点信息发送给controller manager,向指定的一个work node发送启动docker的指令。 (5)指令在work node中被kubelet接收,并创建相应的pod。 (6)若docker需要与Internet通信,需通过kubeproxy来代理。

四、Kubernetes核心概念

  1. Pod 是K8S最小部署单元,短暂的,一个Pod可以是一个(常见)或一组容器的集合,又称容器组。
  2. Conrollers 控制Pod的启动、停止、删除。如ReplicaSet、Deployment、StatefulSet、DaemonSet、Job、Cronjob。
  3. Service 将一组Pod关联起来,提供一个统一的入口。即使Pod地址发生改变,这个统一的入口不变,保证用户访问不受影响。
  4. Label 一组Pod有一个统一的Label,Service是通过Label和一组Pod进行关联的。
  5. Namespace 名称空间,为不同的公司提供隔离的Pod运行环境。为开发、测试、生产环境提供隔离,默认情况下Pod可以互相访问。

五、部署方式

  1. minikube 工具,在本地快速运行一个单点的k9s,仅用于尝试。
  2. kubeadm 工具,提供kubeadm init和kubeadm join,快速部署集群。
  3. 二进制 下载二进制包,手动部署每个组件,构成k8s集群。

参考视频

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Kubernetes概述
  • 〇、Docker相关概念
  • 一、Kubernetes是什么
  • 二、Kubernetes特性
  • 三、Kubernetes集群架构与组件
  • 四、Kubernetes核心概念
  • 五、部署方式
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档