返回

Kubernetes 初学者保姆级安装指南

后端

Kubernetes 第一弹:保姆级安装教程

引言

Kubernetes(也被称为 k8s)是当今最流行的容器编排平台之一。它使你可以轻松地管理、部署和扩展你的应用程序。然而,对于新手来说,安装 Kubernetes 可能是一项艰巨的任务。在这篇指南中,我们将详细介绍如何在虚拟机上安装 Kubernetes,并分享一些有用的提示和最佳实践。

准备环境

在开始安装之前,你需要准备三台虚拟机,这些虚拟机将充当 Kubernetes 集群中的节点。这些节点需要具有以下最低配置:

  • 2 核 CPU
  • 4GB 内存
  • 50GB 磁盘空间

还建议你的虚拟机运行最新版本的 Linux 发行版,例如 Ubuntu 或 CentOS。

安装 Kubernetes

我们将使用 kubeadm 工具来安装 Kubernetes。kubeadm 是一种命令行工具,可简化 Kubernetes 集群的安装和管理。

1. 安装 kubeadm

在每台虚拟机上运行以下命令来安装 kubeadm:

sudo apt-get update
sudo apt-get install -y kubeadm

2. 初始化 Kubernetes 集群

在其中一台虚拟机上(称为主节点),运行以下命令来初始化 Kubernetes 集群:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

此命令将执行以下操作:

  • 创建 Kubernetes 控制平面组件(etcd、API 服务器和调度程序)
  • 初始化 kubeconfig 文件,该文件包含访问 Kubernetes API 的凭证
  • 设置 pod 网络

3. 加入其他节点

要将其他节点加入集群,请在每个节点上运行以下命令:

sudo kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash <hash>

其中 <master-ip> 是主节点的 IP 地址,<token> 是初始化集群时生成的令牌,<hash> 是令牌哈希值。

4. 验证安装

一旦所有节点都加入集群,请运行以下命令来验证安装是否成功:

kubectl get nodes

这应该列出集群中的所有节点。

部署应用程序

现在 Kubernetes 集群已经安装好,你可以开始部署应用程序了。让我们使用 Nginx 作为示例:

1. 创建 Deployment

创建以下 Deployment yaml 文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

然后,使用 kubectl 创建 Deployment:

kubectl create -f nginx.yaml

2. 创建 Service

创建以下 Service yaml 文件:

apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  selector:
    app: nginx
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80

然后,使用 kubectl 创建 Service:

kubectl create -f nginx-service.yaml

3. 查看应用程序

现在 nginx 应用程序已部署,你可以使用以下命令查看:

kubectl get pods
kubectl get services

提示和最佳实践

  • 使用 kubectl cheat sheet 来快速查找命令。
  • 监控你的集群以了解其运行状况和性能。
  • 使用 Ingress 控制器来管理你的应用程序的外部流量。
  • 定期更新你的 Kubernetes 集群。
  • 使用 Helm 来管理你的 Kubernetes 应用程序。

结论

恭喜!你已经成功地在虚拟机上安装了 Kubernetes。通过按照本指南中的步骤操作,你已经掌握了 Kubernetes 集群的基础知识。现在,你可以继续探索 Kubernetes 的高级功能,并部署更复杂的应用程序。通过持续的学习和实践,你很快就会成为 Kubernetes 专家。