搭建一个小巧完备的K8S环境(chrono《kubernetes入门实战课》笔记整理)

 【k8s环境介绍】

kubernetes,因为k和s之间,有8个字母,所以通常又称为K8S。用来对容器进行调度和管理的,即用来对容器进行编排的。如果只有简单的几个镜像,确实不需要k8s,但是如果有成百上千的服务器、容器,处理他们的复杂逻辑,就必须依靠k8s了。

1、运行k8s环境:用来做实验的k8s环境,官方推荐了两个方式:kind和minikube,都是适合在本机运行的完整k8s环境。

  • kind:基于docker,意思是“k8s in docker”。功能少,用法简单,也因此运行快,易上手,但是缺少很多k8s的标准功能,比如仪表盘、网络插件等,适合有经验的用户快速开发测试,不适合学习;
  • minikube:小而美,小小的空间集成了k8s绝大多数功能特性,不仅可以做容器编排,还有丰富的插件,如dashboard、kong、registry等。所以我们优选这个方式搭建实验环境。

2、操作k8s环境:minikube可以搭建k8s的环境,如果需要操作k8s,还需要客户端工具“kubectl”。类似于容器技术里面的“docker”命令,它也是一个命令行工具,用于与k8s后台服务通信, 把命令转发给k8s,实现容器和集群的管理功能

  【安装minikube&kubectl

1、根据操作系统,选择不同的安装链接,安装minikube

# Intel x86_64
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
# Apple arm64
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64
2)sudo install minikube /usr/local/bin/

2、执行命令minikube version,验证安装成功:

3、安装kubectl。kubectl是一个与k8s、minikube彼此独立的项目,不包含在minikube里,但minikube提供了安装它的简化方式:minikube kubectl。之后会下载与当前k8s版本匹配的kubectl。

 

【运行minikube&创建k8s环境】安装成功后,就可以运行minikube,创建k8s环境了。

//https://blog.csdn.net/corruptwww/article/details/124872689,这个连接总结了很多minikube的坑,如果遇到问题,很值得参考。

1、输入 minikube start --kubernetes-version=v1.23.3 从docker hub上拉取镜像。由于我这边环境输入这个命令报错CPU核数不够,以及权限不够,需要分别做一下调整。我也记录下这俩FAQ,正确完整的命令为:minikube start --driver=docker --kubernetes-version=v1.23.3 --force --image-mirror-country='cn'。如果是机器重启,输入minikube start --kubernetes-version=v1.23.3重新启动minikube即可。

1)报错1:cpu至少需要2核。于是关闭虚拟机,重新调整为8c了

 

 2)报错2:基于报错1修改后,又提示权限需要root,最后我根据提示,增加了force参数解决。另外一个注意的点是,一定添加--image-mirror-country='cn'参数,配置使用中文dockcer镜像仓库,加速镜像下载,不然速度会只有大概十几k,特别慢。

 

 

2、输入minikube status和minikube node list确认k8s环境创建成功。当前k8s集群,只有一个节点minikube,类型是control plane,里面有host,kubelet,apiserver三个服务,IP是192.168.49.2。通过minikube ssh,可以登录 这个节点;                                                                                                       

 

3、由于我们安装的是minikube,如果直接输入kubectl,会报错,需要输入“minikube kubectl --”,再带上对应的参数,来下发kubectl的命令。所以可以先用linux的alias,给这个命令取个别名alias kubectl="minikube kubectl --",这样就可以直接使用kubectl来操作了。另外kubectl提供了命令自动补全的功能,所以linux环境下可以再输入 “source <(kubectl completion bash)”:

  

 【命令使用】

1、kubernetes运行nginx应用,命令和docker一样,也是run,区别是需要指定镜像。可以看到有个pod运行,一个pod可以理解为一个豌豆荚,里面是一颗颗不同功能的容器豌豆,合起来提供一个需要的能力,所以一个pod可以含有多个容器;

 

2、查看pod,使用命令kubectl get pod,查看运行的pod列表

 

 

【一个概念】

云原生:云,就是相对于本地环境的概念,这里由于云上主要是k8s,所以这里的云,就直接对等为k8s去理解,云原生,就是应用的开发、部署、运维等一系列工作都要使用容器、微服务等技术,保证应用的整个生命周期都能够在k8s环境里顺利实施。本质就是,天然可以在k8s运行的,就是符合云原生的。

 

posted @   1234roro  阅读(406)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示