Kubernetes (K8S) 是一个开源的容器编排引擎,用于自动化部署、扩展和操作应用程序容器化。而 Minikube 是一个工具,可以在本地运行单节点的 Kubernetes 集群,方便开发人员在本地环境进行容器化应用的开发和测试。本文将介绍 Minikube 与 K8S 的异同,并指导如何在本地环境搭建 Minikube 和 K8S 集群。

### Minikube 与 K8S 异同
首先让我们来看一下 Minikube 与 K8S 的一些异同点:

| 特性 | Minikube | K8S |
|--------------|-----------------------------|--------------------------------------|
| 部署 | 单节点 | 多节点 |
| 轻量级 | 是 | 否 |
| 部署环境 | 本地环境 | 云端/数据中心 |
| 适用场景 | 开发和测试 | 生产部署 |

### 搭建 Minikube 与 K8S 集群
接下来是搭建 Minikube 和 K8S 集群的步骤,我们将一步一步进行:

1. 安装 Minikube:
```bash
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube
sudo mv minikube /usr/local/bin/
```
2. 启动 Minikube:
```bash
minikube start
```
3. 部署一个简单的应用:
```bash
kubectl create deployment hello-node --image=k8s.gcr.io/serve_hostname
kubectl expose deployment hello-node --type=NodePort --port=80
```
4. 查看服务的URL:
```bash
minikube service hello-node --url
```

现在,你已经成功地在本地环境搭建了一个 Minikube 集群,并在其中部署了一个简单的应用。接下来,让我们来看一下如何搭建一个 K8S 集群:

1. 安装 kubectl:
```bash
sudo apt-get update && sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
```
2. 安装 kubeadm、kubelet 和 kubectl:
```bash
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
```
3. 初始化 K8S 集群:
```bash
sudo kubeadm init
```
4. 部署 Pod 网络插件(例如 Calico):
```bash
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
```
5. 将 K8S 集群的配置写入当前用户的配置文件中:
```bash
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```

经过以上步骤,你已经搭建了一个 K8S 集群,并且成功部署了一个 Pod 网络插件。现在,你可以在这个 Kubernetes 集群中部署更加复杂的应用程序。

### 总结
通过本文的介绍,你应该了解了 Minikube 与 K8S 的异同以及如何在本地环境分别搭建起它们。Minikube 适用于开发和测试场景,而 K8S 更适合生产部署。希望这篇文章对你理解 Minikube 和 K8S 有所帮助,祝你在容器化应用开发的路上顺利前行!