《Kubernetes入门实战课》课程学习笔记(一)

迎难而上,做云原生时代的弄潮儿

  • 现在 Kubernetes 已经没有了实际意义上的竞争对手,它的地位就如同 Linux 一样,成为了事实上的云原生操作系统,是构建现代应用的基石。
  • 现代应用是什么?
    • 是微服务,是服务网格,这些统统要围绕着容器来开发、部署和运行。
    • 使用容器就必然要用到容器编排技术,在现在只有唯一的选项,那就是 Kubernetes。
  • "云原生"已经是现在 IT 界的普遍共识,是未来的大势所趋。

学习 Kubernetes 有哪些难点

  • 理论上讲,学习 Kubernetes 只要看资料就足够了,但实际情况却是学习起来仍然困难重重,我们会遇到很多意想不到的问题。
  • Kubernetes 技术栈的特点可以用四个字来概括,那就是"新、广、杂、深"。
    • "新"是指 Kubernetes 用到的基本上都是比较前沿、陌生的技术,而且版本升级很快,经常变来变去。
    • "广"是指 Kubernetes 涉及的应用领域很多、覆盖面非常广,不太好找到合适的切入点或者突破口。
    • "杂"是指 Kubernetes 的各种实现比较杂乱,谁都可以上来"掺和"一下,让人看的眼晕。
    • "深"是指 Kubernetes 面对的每个具体问题和方向,都需要有很深的技术背景和底蕴,想要吃透很不容易。

动手实践才是最好的学习方式

  • "工欲善其事,必先利其器",所以在正式学习之前,我们必须要有一个基本的实验环境,要能够在环境中熟悉 Kubernetes 的操作命令、验证测试 Kubernetes 的各种功能。
    • 现在的虚拟机软件已经非常成熟可靠了,能够在一台电脑里虚拟出多台主机,这些虚拟主机用起来和真实的物理主机几乎没有什么差异,只要你的电脑配置不是太差,组成一个三四台虚拟服务器的小集群是毫无问题的,而且虚拟机的创建删除都非常简单,成本极低。
    • 使用虚拟机软件还有一点额外的好处,由于很多云服务商内部也在大量使用虚拟服务器,Kubernetes 里的容器技术也与虚拟机有很多相似之处,通过使用虚拟机,我们还能顺便对比这些技术的异同点,加深对 Kubernetes 的理解。
  • 我们的主要目的是学习,所以易用性应该是首要关注点,另外系统还应该能够同时支持 x86_64 和 arm64。建议选择 Ubuntu 22.04 Jammy Jellyfish 桌面版(Ubuntu 22.04),它有足够新的特性,非常适合运行 Kubernetes,而内置的浏览器、终端等工具也很方便我们的调试和测试。

如何配置虚拟机

  • 准备好虚拟机软件和 Ubuntu 光盘镜像之后,我们就可以来安装虚拟机了。不过在安装之前,我们必须要把虚拟机适当地配置一下。
    • Kubernetes 不是一般的应用软件,而是一个复杂的系统软件,对硬件资源的要求有一点高,好在并不太高,2 核 CPU、2G 内存是最低要求,如果条件允许,建议把内存增大到 4G,硬盘 40G 以上,这样运行起来会更流畅一些。
    • 另外,一些对于服务器来说不必要的设备也可以禁用或者删除,比如声卡、摄像头、软驱等等,可以节约一点系统资源。
  • 由于 Linux 服务器大多数要以终端登录的方式使用,多台服务器还要联网,所以在网络方面我们还需要特别设置。
    • 打开编辑中的虚拟网络编辑器,添加一个自定义的 NAT模式 VMnet3;
    • 将 IP 地址改为 192.168.10.0。
    • 勾选 DHCP 启用它。
    • 将虚拟机的网络适配器改为自定义:VMnet3

如何安装虚拟机

  • 把 CPU、内存、硬盘、网络都配置好之后,再加载上 Ubuntu 22.04 的光盘镜像,我们就可以开始安装 Linux 了。
  • 在安装的过程中,为了节约时间,建议选择"最小安装",同时物理断网,避免下载升级包。
  • 安装完 Linux 系统之后,我们还要再做一些环境的初始化操作。
    • 首先我们需要用 Ctrl + Alt + T 打开命令行窗口,然后用 apt 从 Ubuntu 的官方软件仓库安装 git、vim、curl 等常用工具:sudo apt updatesudo apt -y git vim curl jqsudo apt -y openssh-server,然后进行网络设置:
    • 这些工作完成之后,我建议你再给虚拟机拍个快照,做好备份工作,这样万一后面有什么意外发生环境被弄乱了,也可以轻松回滚到拍快照时的正确状态。
相关推荐
武昌库里写JAVA1 小时前
使用 Java 开发 Android 应用:Kotlin 与 Java 的混合编程
java·vue.js·spring boot·sql·学习
喜欢你,还有大家2 小时前
Linux笔记7——shell编程基础-1
linux·运维·笔记
IT人生--MarkGuo2 小时前
容器云后端存储NFS高可用适配
kubernetes
山中月侣2 小时前
Java多线程编程——基础篇
java·开发语言·经验分享·笔记·学习方法
Insist7533 小时前
K8S-Secret资源对象
云原生·容器·kubernetes
小眼睛FPGA3 小时前
【盘古100Pro+开发板实验例程】FPGA学习 | gamma 变化 | 图像实验指导手册
科技·学习·ai·fpga开发·fpga
subuq3 小时前
Web3.0 时代的电商系统:区块链如何解决信任与溯源问题?
大数据·网络·学习
袁培宇4 小时前
python学习打卡day40
人工智能·python·学习
m0_678693334 小时前
深度学习笔记34-YOLOv5调用官方权重进行检测
笔记·深度学习·yolo
5 小时前
JAVA-15 (2025.08.20学习记录)
java·开发语言·学习