K8S 开发环境的虚拟机上的单台安装和基本使用

  • 提示:部署环境需要外网环境,当前方法是在本地的一台虚拟机中部署服务,系统为Centos7
  • 配置:Centos7 2c 4g

更新组件

yum update -y

执行关闭命令

systemctl stop firewalld.service

执行开机禁用防火墙自启命令 :

systemctl disable firewalld.service

安装docker,如果已经有则不用再安装docker容器服务
安装最新的docker.x86_64,当前安装的型号为x86_64

yum install docker.x86_64

启动docekr服务

service docker start

设置docker服务开机启动

systemctl docker start

安装Minukube
选择环境
参考地址:https://minikube.sigs.k8s.io/docs/start/
下载安装脚本

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

设置脚本为可执行

chmod +x ./minikube-linux-amd64

安装minikube

sudo install minikube-linux-amd64 /usr/local/bin/minikube

Kubectl安装

curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl

使文件可执行

chmod +x ./kubectl

移动到系统目录

mv ./kubectl /usr/local/bin/kubectl

查看版本命令

kubectl version

安装以下文件,先pull镜像,由于文件比较大,如果网络环境比较快可以忽略先pull

docker pull anjone/kicbase

不是root 启动的方式有2中
第一种

minikube start

或 第二种

minikube start --vm-driver=docker --base-image
<think>好的,用户问的是“K8s一般在哪个虚拟机上运行”。首先,我需要确认用户的问题是什么。K8s是Kubernetes的缩写,他们想知道Kubernetes通常运行在哪些虚拟机上。可能用户对Kubernetes的部署环境不太熟悉,或者在考虑自己的基础设施选择,比如是选公有云还是私有云,或者想了解本地部署时的虚拟机选项。 首先,我应该先解释Kubernetes本身的架构,说明它是一个容器编排系统,可以运行在各种环境中,包括虚拟机、物理机、公有云等。用户可能想知道常见的虚拟机平台有哪些,特别是在私有云或本地环境中。比如VMware、OpenStack、VirtualBox等。 然后,需要考虑到用户可能对云服务不太了解,或者他们可能是在企业环境中工作,需要使用特定的虚拟化技术。比如,很多企业使用VMware vSphere来管理虚拟机Kubernetes可以部署在这些VM上。此外,像OpenStack这样的私有云平台也常用来托管Kubernetes集群。 另外,可能用户的问题背后是想了解如何搭建自己的K8s环境,或者在云上使用托管的K8s服务。这时候需要区分开,虚拟机只是其中的一部分,而公有云如AWS、Azure、GCP也提供托管的Kubernetes服务(如EKS、AKS、GKE),这些服务底层可能也使用虚拟机,但用户不需要直接管理虚拟机。 需要进一步分析用户可能的场景:如果是个人学习,可能会用VirtualBox或VMware Workstation在本地创建虚拟机来运行Kubernetes节点;如果是企业环境,可能更倾向于使用VMware或OpenStack;如果是云环境,可能会直接使用云服务商的虚拟机实例,比如AWS EC2。 此外,用户可能对Kubernetes的部署方式有疑问,比如是否必须使用虚拟机,或者是否可以在物理机上直接运行。这时候需要说明Kubernetes的灵活性,可以运行在物理机、虚拟机甚至容器中(比如K3s),但虚拟机是常见的选择,因为它提供了资源隔离灵活性。 可能还需要提到一些工具,如Kubeadm、Minikube、Kind等,这些工具可以帮助用户在虚拟机或本地环境中快速搭建Kubernetes集群。例如,Minikube通常用于本地开发,会在单个虚拟机中运行一个单节点集群,而生产环境可能需要多个虚拟机组成的集群。 另外,用户可能关心性能或资源消耗的问题,虚拟机与裸金属之间的差异。这时候需要简要说明虚拟机的优缺点,比如资源开销较高但管理方便,而物理机性能更好但维护成本高。 最后,需要总结常见的虚拟机平台,并给出建议,根据不同的使用场景选择合适的虚拟化技术或云服务。同时,提醒用户注意Kubernetes的版本兼容性系统要求,确保虚拟机环境满足需求。</think>以下是对 Kubernetes(K8s)运行环境的详细介绍: --- ### **Kubernetes 的运行环境** Kubernetes 是一个与基础设施无关的容器编排平台,理论上可以在任何支持容器的环境中运行。但实际部署中,**虚拟机(VM)** 是最常见的底层基础设施之一,尤其是在私有云或混合云场景中。 --- ### **常见虚拟机平台** 1. **通用虚拟化技术** - **VMware vSphere**:企业级虚拟化方案,常用于本地数据中心。 - 通过 `vSphere Provider` 集成,支持动态存储卷、负载均衡等功能。 - **KVM(Kernel-based Virtual Machine)**:开源虚拟化技术,多用于 Linux 环境。 - 配合 `libvirt` 或 `OpenStack` 管理虚拟机集群。 - **Hyper-V**:Windows 平台的虚拟化方案,适合混合 Windows/Linux 容器环境。 2. **公有云虚拟机实例** - **AWS EC2**:在 EC2 实例上部署 Kubernetes 节点(如使用 `kops` 工具)。 - **Azure VMs**:通过 `AKS Engine` 快速创建 Kubernetes 集群。 - **Google Compute Engine(GCE)**:GKE 的底层依赖,自动管理控制平面。 3. **轻量级开发环境** - **VirtualBox/Vagrant**:本地开发测试场景,常用于 `Minikube` 或 `Kind` 的单节点集群。 ```bash minikube start --driver=virtualbox # 使用 VirtualBox 启动本地 K8s ``` --- ### **为什么选择虚拟机?** - **资源隔离**:虚拟机为每个 Kubernetes 节点(Master/Worker)提供独立的 CPU、内存存储。 - **兼容性**:支持异构操作系统(如 Linux 节点与 Windows 节点混合部署)。 - **灵活迁移**:虚拟机镜像可快速复制到不同物理机或云平台,适应混合云需求。 --- ### **Kubernetes虚拟机上的典型架构** $$ \begin{array}{ll} \text{物理服务器} & \rightarrow \text{虚拟机监控程序(Hypervisor)} \\ & \rightarrow \begin{cases} \text{VM 1(K8s Master)} & \rightarrow \text{etcd, API Server, Scheduler} \\ \text{VM 2(K8s Worker)} & \rightarrow \text{Pod/容器} \\ \text{VM 3(K8s Worker)} & \rightarrow \text{Pod/容器} \end{cases} \end{array} $$ --- ### **关键工具与集成** 1. **Terraform**:自动化创建管理虚拟机基础设施(如 AWS EC2、Azure VM)。 2. **Kubeadm**:在虚拟机集群中快速初始化 Kubernetes(需手动配置网络插件如 Calico)。 ```bash kubeadm init --apiserver-advertise-address=<VM_IP> # 初始化 Master 节点 ``` 3. **OpenStack Magnum**:在 OpenStack 虚拟机集群中一键部署托管 Kubernetes 服务。 --- ### **与裸金属(Bare Metal)的对比** | **场景** | **虚拟机运行 K8s** | **裸金属运行 K8s** | |-----------------------|---------------------------------|-----------------------------| | **资源开销** | 较高(Hypervisor 层消耗资源) | 低(直接使用物理机资源) | | **隔离性** | 强(VM 间完全隔离) | 依赖命名空间隔离,安全性较低 | | **适用规模** | 中小型集群,快速扩展 | 超大规模集群(如高性能计算场景) | | **典型用例** | 企业私有云、混合云 | 数据中心、边缘计算(如 5G 基站) | --- ### **推荐实践** 1. **生产环境**: - 使用云服务商托管 Kubernetes(如 EKS、AKS、GKE),底层自动管理虚拟机。 - 若自建,选择企业级虚拟化平台(如 VMware + Tanzu)。 2. **开发测试**: - 本地虚拟机 + Minikube/Kind,或直接使用 Docker Desktop 内置 Kubernetes。 3. **边缘计算**: - 轻量级虚拟机(如 KVM 精简镜像) + K3s(专为边缘优化的 Kubernetes 发行版)。 --- ### **注意事项** - **网络配置**:确保虚拟机间网络互通,开放 K8s 端口(如 6443、2379-2380)。 - **存储性能**:虚拟机磁盘 I/O 可能成为瓶颈,建议使用 SSD 或直连物理存储。 - **License**:部分虚拟化平台(如 VMware)需商业许可才能用于生产环境。 --- $$ \text{总结:虚拟机是 K8s 的常见载体,但具体选择需权衡成本、性能管理复杂度} $$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wcuuchina

谢谢你的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值