09|走近云原生:如何在本机搭建小巧完备的Kubernetes环境
Chrono
你好,我是 Chrono。
在前面的“入门篇”里,我们学习了以 Docker 为代表的容器技术,做好了充分的准备,那么今天我们就来看看什么是容器编排、什么是 Kubernetes,还有应该怎么在自己的电脑上搭建出一个小巧完善的 Kubernetes 环境,一起走近云原生。
什么是容器编排
容器技术的核心概念是容器、镜像、仓库,使用这三大基本要素我们就可以轻松地完成应用的打包、分发工作,实现“一次开发,到处运行”的梦想。
不过,当我们熟练地掌握了容器技术,信心满满地要在服务器集群里大规模实施的时候,却会发现容器技术的创新只是解决了运维部署工作中一个很小的问题。现实生产环境的复杂程度实在是太高了,除了最基本的安装,还会有各式各样的需求,比如服务发现、负载均衡、状态监控、健康检查、扩容缩容、应用迁移、高可用等等。
图片来自网络
虽然容器技术开启了云原生时代,但它也只走出了一小步,再继续前进就无能为力了,因为这已经不再是隔离一两个进程的普通问题,而是要隔离数不清的进程,还有它们之间互相通信、互相协作的超级问题,困难程度可以说是指数级别的上升。
这些容器之上的管理、调度工作,就是这些年最流行的词汇:“容器编排”(Container Orchestration)。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何在本机搭建小巧完备的Kubernetes环境。首先,文章解释了容器编排的概念,指出容器技术的创新解决了部署工作中的一个小问题,但在实际生产环境中,需要解决更多复杂的问题,这就引出了容器编排的重要性。接着,文章介绍了Kubernetes的由来和作用,强调了其作为生产级别的容器编排平台和集群管理系统的重要性。然后,文章介绍了minikube作为快速搭建Kubernetes环境的工具,对其特点进行了比较和推荐。最后,文章详细介绍了如何在本机搭建minikube环境,包括安装minikube和kubectl的步骤。整体而言,本文内容涵盖了容器编排、Kubernetes和minikube的基本概念和操作步骤,适合初学者快速了解和入门。 文章通过介绍容器编排的概念和Kubernetes的作用,强调了在实际生产环境中解决复杂问题的重要性。同时,详细介绍了minikube作为快速搭建Kubernetes环境的工具,以及在本机搭建minikube环境的步骤。读者可以通过本文快速了解和入门容器编排、Kubernetes和minikube的基本概念和操作步骤。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Kubernetes 入门实战课》,新⼈⾸单¥59
《Kubernetes 入门实战课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(91)
- 最新
- 精选
- 柳成荫镜像拉取成功,遇到了几个坑 1. docker版本过低,docker升级到20.10.1以上 2. 不能用root账号,加上--force 3. 镜像拉取不下来,切换到国内镜像,先执行 minikube delete 再执行 minikube start --image-mirror-country='cn'
作者回复: great
2022-07-11264 - 自由1.1、如何理解容器编排? 先拆成两个部分,什么是容器?什么是编排?以前,程序运行在物理机或虚拟机中。容器,是现代程序的运行方式。编排就是部署、管理应用程序的系统,能动态地响应变化,例如以下部分功能。 - 回滚 - 滚动升级 - 故障自愈 - 自动扩缩容 自动完成以上所有任务。需要人工最初进行一些配置,就可以一劳永逸。回顾一下,什么是容器编排,运行容器形式的应用程序,这些应用程序的构建方式,使它们能够实现回滚、滚动升级、故障自愈、自动扩缩容等。 1.2、如何理解 Kubernetes? 举一个例子,寄、收快递的过程。发件人将货物按照快递公司的标准打包,提供基本信息(收货地址等),然后交给快递小哥。其他事情,无需发件人操心了,例如快递用什么交通工具运输、司机走哪条高速等等。快递公司同时提供物流查询、截断快递等服务。重点在于,快递公司仅需要发件人提供基本信息。Kubernetes 也是类似的,将应用程序打包成容器,声明运行方式,交给 Kubernetes 即可,同时它提供了丰富的工具和 API 来控制、观测运行在平台之上的应用程序。 1.3 容器编排应该能够解决什么问题? 屏蔽底层的复杂性。 2、Kubernetes 和 Docker 之间有什么区别? Docker 应用打包、测试、交付。Kubernetes 基于 Docker 的产物,进行编排、运行。例如现在有 1 个集群,3 个节点。这些节点,都以 Docker 作为容器运行时,Docker 是更偏向底层的技术。Kubernetes 更偏向上层的技术 ,它实现了对容器运行时的抽象,抽象的目的是兼容底层容器运行时(容器进行时技术不仅有 Docker,还有 containerd、kata 等,无论哪种容器运行时,Kubernetes 层面的操作都是一样的)以及解耦,同时还提供了一套容器运行时的标准。抽象的产物是容器运行时接口 CRI。 说的不对的地方请斧正 : - )
作者回复: amazing!
2022-07-12451 - 朱雯记录一下我遇到的坑,和评论里面解决方案: 1. 不能用root账号,使用普通用户加上--force 2. 镜像拉取不下来,切换到国内镜像,先执行 minikube delete 再执行 minikube start --image-mirror-country='cn' --kubernetes-version=v1.23.3 3. 安装一直停留在这里 - Booting up control plane ...| 调整虚拟机配置,调到4c8g。 4. 我自己之前的一个配置错误,将minikube 生成的kubectl 加入到了path中。
作者回复: very good.
2022-07-13317 - 许飞minikube start --kubernetes-version=v1.23.3 --image-mirror-country='cn' --force
作者回复: great
2022-07-13215 - Geek_8ac3031、运行容器:kubectl run ngx --image=nginx:alpine 2、查看pod:kubectl get pods -o wide NAME READY STATUS ngx 0/1 ContainerCreating 3、结果:拉取镜像拉不下来,一直卡在那,但是用docker pull 单独拉去镜像是没问题的,鼓捣了两三个小时,后来发现了一个参数可以解决这个问题,--registry-mirror=https://twm4fpgj.mirror.aliyuncs.com 这部分是指定docker的镜像加速地址(我是用的阿里的地址,每个人的应该是不一样的),原来通过kubectl调用的docker的配置并不是/etc/docker/daemon.json 里面的配置 4、重新安装: minikube stop minikube delete --all minikube start --kubernetes-version=v1.23.9 --image-mirror-country='cn' --registry-mirror=https://twm4fpgj.mirror.aliyuncs.com
作者回复: 可能每个人的网络环境不一样吧,我一般不用国内的镜像网站,docker hub通常直接可以拉取。
2022-11-08归属地:北京12 - 朱雯尝试回答一下这两个问题:docker和k8s之间的区别,一个是容器技术,一个是容器编排技术,两者思考的维度是不一样的,就容器而言,容器解决的问题是隔离,是一次打包到处运行的问题,最大的价值就在于镜像的迁移。编排技术则是关注的是整个系统的问题,如果你只关注一个服务,迁移一个服务,那docker就够,但要迁移整个系统以及运维,那就需要编排,包括网络关系,负载均衡,回滚,监控,扩缩容问题则需要容器编排技术。
作者回复: great
2022-07-1311 - 雨落~紫竹碰到一坑 minikube start 无法启动 群友建议minikube delete --all --purge 解决
作者回复: good
2022-07-23310 - DmonJ当前最新的minikube是1.26.1, 文章中的是1.25.2, 可以使用指定下载版本的方式确保安装的版本与文章中的一致: ` curl -LO https://github.com/kubernetes/minikube/releases/download/v1.25.2/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube ` 全部版本链接:`https://github.com/kubernetes/minikube/releases`
作者回复: good
2022-08-14归属地:北京9 - jxs1211kubeadmin和minikube有什么区别,用哪个如何选择
作者回复: kubeadm是Kubernetes的安装工具,minikube是一个集成学习环境,中级篇会讲kubeadm,慢慢来。
2022-07-117 - 孙中伟minikube start --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --base-image='registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.28' --kubernetes-version=v1.23.3 使用上述命令,终于start成功
作者回复: great
2023-06-21归属地:广东6
收起评论