Kubernetes 完整安装部署指南

Kubernetes(简称 K8s)是一个开源的容器编排工具,它可以帮助我们自动化应用的部署、扩展和管理。本文将对此进行深入探讨,提供一个完整的安装部署流程,包含代码示例和流程图,帮助读者构建自己的 Kubernetes 集群。

Kubernetes 安装概述

Kubernetes 的安装过程主要包括以下几个步骤:

  1. 确保环境准备
  2. 安装 Docker
  3. 配置 Kubernetes 仓库
  4. 安装 Kubernetes 组件
  5. 初始化 Master 节点
  6. 加入 Worker 节点
  7. 部署示例应用

接下来,我们将详细介绍每一步。

环境准备

确保机器满足以下环境要求:

  • 操作系统:Ubuntu 20.04 / CentOS 7
  • CPU:至少 2 核
  • 内存:至少 2 GB
  • 确保防火墙与网络设置允许 K8s 通信

安装 Docker

首先,您需要在每个节点上安装 Docker,这可以用以下命令完成:

# 更新APT索引
sudo apt-get update

# 安装必要的包
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

# 添加 Docker GPG 密钥
curl -fsSL  | sudo apt-key add -

# 添加 Docker APT 源
sudo add-apt-repository "deb [arch=amd64]  $(lsb_release -cs) stable"

# 更新APT索引
sudo apt-get update

# 安装 Docker
sudo apt-get install -y docker-ce

配置 Kubernetes 仓库

接下来,我们需要将 Kubernetes 的软件源添加到系统中:

# 添加 Kubernetes GPG 密钥
curl -s  | sudo apt-key add -

# 添加 Kubernetes 源
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb  kubernetes-xenial main
EOF

然后更新软件包索引:

sudo apt-get update

安装 Kubernetes 组件

安装 Kubernetes 组件:kubelet、kubeadm 和 kubectl。

sudo apt-get install -y kubelet kubeadm kubectl
# 将这些组件设为不更新
sudo apt-mark hold kubelet kubeadm kubectl

初始化 Master 节点

在 Master 节点上运行以下命令来初始化 Kubernetes 集群:

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

成功初始化后,您将会看到加入 Worker 节点的命令,复制并保存这个命令以便后续使用。

然后, 您需要执行下列命令以便于 kubectl 命令可以在当前用户下使用:

# 设置 kubeconfig 环境变量
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

加入 Worker 节点

在每个 Worker 节点上执行从 Master 节点得到的加入命令,类似于:

sudo kubeadm join <Master_IP>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

部署示例应用

为了验证 Kubernetes 的安装是否正确,我们可以部署一个简单的 Nginx 应用:

# nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

使用以下命令部署 Nginx:

kubectl apply -f nginx-deployment.yaml

您可以使用下面的命令检查 Nginx 部署情况:

kubectl get deployments

流程图

flowchart TD
    A[环境准备] --> B[安装 Docker]
    B --> C[配置 Kubernetes 仓库]
    C --> D[安装 Kubernetes 组件]
    D --> E[初始化 Master 节点]
    E --> F[加入 Worker 节点]
    F --> G[部署示例应用]

安装时间计划

以下是 Kubernetes 安装的时间计划(假设总共需要6小时):

gantt
    title Kubernetes 安装时间计划
    dateFormat  YYYY-MM-DD
    section 安装准备
    环境准备             :a1, 2023-10-01, 1h
    安装 Docker          :a2, after a1, 1h
    配置 Kubernetes      :a3, after a2, 1h
    section Kubernetes 组件安装
    安装组件             :a4, after a3, 1h
    初始化 Master 节点   :a5, after a4, 1h
    加入 Worker 节点     :a6, after a5, 1h

总结

在本文中,我们详细介绍了 Kubernetes 的完整安装过程,从环境准备到示例应用部署。通过上述步骤及代码示例,您可以在自己的机器上顺利搭建 Kubernetes 环境。希望这篇文章能够帮助到您,顺利进行容器化应用的管理和调度。如果您有任何问题或需要进一步的帮助,请随时与我联系!