返回

Kubernetes入门指南:单master安装

闲谈

Kubernetes 简介:一个全面的指南

什么是 Kubernetes?

Kubernetes(简称 k8s)是一个开源的容器编排系统,旨在自动化容器化应用程序的部署、扩展和管理。它提供了一系列强大的功能,包括服务发现、负载均衡、秘密管理和自动扩缩容。

单 master 安装步骤

准备环境

  • master 节点:
    • 最少 2 核 CPU 和 4GB 内存
    • 运行 Linux 操作系统(推荐 Ubuntu 18.04 或 CentOS 7)
    • 具有 root 权限
  • worker 节点:
    • 最少 1 核 CPU 和 2GB 内存
    • 运行 Linux 操作系统(推荐 Ubuntu 18.04 或 CentOS 7)
    • 能够与 master 节点通信

安装 Kubernetes

  • 在 master 节点上安装必要的软件包:
sudo apt-get update
sudo apt-get install -y docker.io kubeadm kubelet kubectl flannel
  • 在 worker 节点上安装必要的软件包:
sudo apt-get update
sudo apt-get install -y docker.io kubelet kubectl flannel

初始化 Kubernetes 集群

  • 在 master 节点上运行以下命令初始化 Kubernetes 集群:
kubeadm init --pod-network-cidr=10.244.0.0/16
  • 此命令将创建 Kubernetes 控制平面组件(apiserver、controller-manager 和 scheduler)并生成一个令牌(“kubeadm-token”),用于加入 worker 节点。

加入 worker 节点

  • 在 worker 节点上运行以下命令加入 Kubernetes 集群:
kubeadm join 192.168.85.10:6443 --token kubeadm-token
  • 此命令将使用“kubeadm-token”令牌将 worker 节点加入 Kubernetes 集群。

验证集群状态

  • 在 master 节点上运行以下命令验证 Kubernetes 集群的状态:
kubectl get nodes
  • 此命令将列出集群中的所有节点,其中应包括 master 节点和 worker 节点。

部署应用程序

  • 现在可以开始在 Kubernetes 集群中部署应用程序。可以使用 kubectl 命令创建和管理应用程序。

  • 以下命令将创建一个名为“hello-world”的简单应用程序:

kubectl create deployment hello-world --image=gcr.io/google-samples/hello-app:1.0
  • 此命令将创建一个名为“hello-world”的部署,并使用名为“hello-app”的镜像。

  • 可以使用以下命令查看应用程序的状态:

kubectl get deployments
  • 此命令将列出集群中的所有部署,其中应包括“hello-world”部署。

访问应用程序

  • 现在可以访问“hello-world”应用程序。可以使用以下命令获取应用程序的外部 IP 地址:
kubectl get services hello-world -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
  • 然后可以在浏览器中输入应用程序的外部 IP 地址来访问它,你将看到一个简单的“Hello, world!”页面。

总结

本指南介绍了如何在单个 master 节点上安装和配置 Kubernetes 集群,以及如何加入 worker 节点、部署应用程序和访问应用程序。希望这篇文章对您有所帮助。

常见问题解答

1. 如何升级 Kubernetes 集群?

  • 使用 kubeadm upgrade 命令。有关详细信息,请参阅 Kubernetes 文档。

2. 如何扩展 Kubernetes 集群?

  • 添加更多 worker 节点。有关详细信息,请参阅 Kubernetes 文档。

3. 如何配置 Kubernetes 网络?

  • Kubernetes 支持多种网络插件,如 Flannel 和 Calico。有关详细信息,请参阅 Kubernetes 文档。

4. 如何故障排除 Kubernetes 集群?

  • 使用 kubectl 命令和 Kubernetes 仪表板。有关详细信息,请参阅 Kubernetes 文档。

5. Kubernetes 与 Docker 有什么区别?

  • Docker 是一个容器引擎,用于构建和运行容器。Kubernetes 是一个容器编排系统,用于管理和编排容器化应用程序。