K8S入门学习

一、K8S入门讲解

容器化技术应运而生,它不需要虚拟出整个操作系统,只需要虚拟一个小规模的环境即可,而且启动速度很快,除了运行其中应用以外,基本不消耗额外的系统资源。Docker是应用最为广泛的容器技术,通过打包镜像,启动容器来创建一个服务。

但是随着应用越来越复杂,容器的数量也越来越多,由此衍生了管理运维容器的重大问题,而且随着云计算的发展,云端最大的挑战,容器在漂移。在此业务驱动下,k8s问世,提出了一套全新的基于容器技术的分布式架构领先方案,在整个容器技术领域的发展是一个重大突破与创新。

那么,K8S实现了什么?

从架构设计层面,我们关注的可用性,伸缩性都可以结合k8s得到很好的解决,如果你想使用微服务架构,搭配k8s,真的是完美,再从部署运维层面,服务部署,服务监控,应用扩容和故障处理,k8s都提供了很好的解决方案。

具体来说,主要包括以下几点:

  1. 服务发现与调度
  2. 负载均衡
  3. 服务自愈
  4. 服务弹性扩容
  5. 横向扩容
  6. 存储卷挂载

总而言之,k8s可以使我们应用的部署和运维更加方便。

k8s之pod详解_kubectl apply -f - << eof-CSDN博客

Pod基础概念
Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一 个进程。kubernetes中其 他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的,例如,用于管理Pod运行的StatefulSet和Deployment等控制器对象,用于暴露Pod应用的Service和Ingress对象,为pod提供存储的PersistentVolume存储资源对象等。


一个Pod中运行一个容器。“每个Pod中一个容器"的模式是最常见的用法:在这种使用方式中,你可以把Pod想象成是单个容器的封装,kuberentes管理的是Pod而不是直接管理容器。
在一个Pod中同时运行多个容器。一个pod中也可以同时封装几个需要紧密耦合互相协作的容器,它们之间共享资源。这些在同一个Pod中的容器可以互相协作成为一个service单位, 比如一个容器共享文件,另一个"sidecar"容器来更新这些文件。Pod将这些容器的存储资源作为一个实体来管理。

Service是应用中的组件或者微服务,Pod则对应一个个服务实例,实际上,应用上Kubernetes也是这样来做的,每个Pod都是运行应用的单个实例,需要水平扩展应用,则应该使用多个Pods,所以微服务实例个数跟pod是一一对应。

k8s学习总结_齐天大圣数据候的博客-CSDN博客_k8s学习

k8s教程----零基础快速入门_江湖人称小青年的博客-CSDN博客(k8s架构,部署实例,kubectl常用命令等)

在这里插入图片描述

 在这里插入图片描述

kubectl 命令的语法如下:

kubectl命令中,指定执行什么操作(command,如create,delete,describe ,get ,apply 等)指定什么类型资源对象(type)指定此类型的资源对象名称(name)指定可选参数(flags)

kubectl [command] [TYPE] [NAME] [flags]

查看pod,nodee,service,endpoints,secret等信息

kubectl get 组件名      #例如kubectl get pod

查看资源状态,比如有一组deployment内的pod没起来,一般用于pod调度过程出现的问题排查

kubectl describe pod pod名    #先用kubectl get pod查看

查看node节点或者是pod资源(cpu,内存资源)使用情况

kubectl top 组件名     #例如kubectl top node  kubectl top pod

进入pod内部

kubectl exec -ti pod名 /bin/bash   #先用kubectl get pod查看

删除pod

kubectl delete pod -n

查看集群健康状态

kubectl get cs

基于 pod.yaml 定义的名称删除指定资源

kubectl delete -f pod.yaml

查看容器的日志

kubectl logs -f <pod-name> # 实时查看日志

创建资源

kubectl apply -f ./my-manifest.yaml 
 

二、K8S可视化

现在主要的kubernetes可视化工具主要有:

1. Kubernetes Dashborad: Kubernetes 官方提供的图形化工具

2. Rancher: 目前比较主流的企业级kubernetes可视化管理工具

3. 各个云厂商Kubernetes集成的管理器

4. Kuboard: 国产开源Kubernetes可视化管理工具
 

推荐一款Kubernetes可视化管理工具——Kuboard_长江之水向西流的博客-CSDN博客

三、部署K8S环境

云原生之史上最全K8S环境搭建(强烈建议收藏)_k8s搭建_码海兴辰的博客-CSDN博客

一键部署 K8S 环境,10分钟玩转,这款开源神器实在太香了 - 知乎

四、总结:DevOps 与容器和 Kubernetes 的关系

【Kubernetes 企业项目实战】06、基于 Jenkins+K8s 构建 DevOps 自动化运维管理平台(上)_devops自动化运维平台_Stars.Sky的博客-CSDN博客

PaaS、DevOps 的概念,在容器和 Kubernetes 普及之前就存在了。广义上的 PaaS、DevOps 的建设,会包含:人、流程、工具等多方面内容。IT 厂商提供的 PaaS、DevOps 以指工具层面的落地为主、以流程咨询为辅。

在 Kubernetes 和容器普及之前,我们通过虚拟机也可以实现 PaaS、CI/CD,只是相对速度较慢,因此普及性不高(想象一下通过 X86 虚拟化来实现中间件集群弹性伸缩的效率)。而正是容器的出现,为 PaaS、DevOps 工具层面的落地提供非常好的承载平台,使得这两年容器云风生水起。这就好比 4G(2014 年出现)和微信(2011 年出现)之间的关系:在手机网速 3G 时代,流量按照兆收费的时候,(即使有)大家对于微信语音聊天、微信视频也不会太感兴趣。

所以说, Docker 使容器具备了较好的可操作性、可移植性,Kubernetes 使容器具备企业级使用的条件。而 IT 界众多基于 Kubernetes 和 Docker 企业级的容器平台,又成为了 Devops 工具落地的新一代基础架构。

常用 DevOps 工具介绍

  • Kubernetes 集群:包含 Docker 和 Kubernetes。
  • Gogs: 通过 Go 编写的本地代码仓库,功能与 github 类似。
  • Jenkins/Jenkins Slave Pods:持续集成工具。
  • Nexus :工件管理器,能够解决本地缓存构建依赖项。
  • SonarQube:开源代码分析工具,它可以分析常见编程错误的源代码。

以上的 DevOps 工具,都可以以容器方式部署到 Kubernetes 集群中。

其他工具类型及对应的不完全列举整理如下:

  • 代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion

  • 构建工具:Ant、Gradle、maven

  • 自动部署:Capistrano、CodeDeploy

  • 持续集成(CI):Bamboo、Hudson、Jenkins

  • 配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail

  • 容器:Docker、LXC、第三方厂商如AWS

  • 编排:Kubernetes、Core、Apache Mesos、DC/OS

  • 服务注册与发现:Zookeeper、etcd、Consul

  • 脚本语言:python、ruby、shell

  • 日志管理:ELK、Logentries

  • 系统监控:Datadog、Graphite、Icinga、Nagios

  • 性能监控:AppDynamics、New Relic、Splunk

  • 压力测试:JMeter、Blaze Meter、loader.io

  • 预警:PagerDuty、pingdom、厂商自带如AWS SNS

  • HTTP加速器:Varnish

  • 消息总线:ActiveMQ、SQS

  • 应用服务器:Tomcat、JBoss

  • Web服务器:Apache、Nginx、IIS

  • 数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库

  • 项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker

在工具的选择上,需要结合公司业务需求和技术团队情况而定。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值