K8S 环境准备(kubeadm 方式)

目录:

  1. 准备克隆模板
  2. 单控制平面集群

准备基础环境

  • 操作系统:Ubuntu 20.04
  • 容器运行时的引擎: Docker 19.03ce
  • Kubernetes:v1.19
  1. 主机时间同步

    sudo systemctl start chronyd
    sudo systemctl enable chronyd
    # 查看服务状态
    sudo systemctl status chronyd
    
  2. 防火墙

    sudo ufw disable && sudo ufw status
    
  3. 禁用Swap

    # 临时禁用
    sudo swapoff -a
    # 永久禁用,将/swapfile 开头的一行进行注释
    sudo vi /etc/fstab
    

配置容器运行引擎

  1. 更新apt索引,并安装必要的包
    sudo apt apt update
    sudo apt install apt-transport-https ca-certificates \
    curl gnupg-agent software-properties-common
    
  2. 添加官方Gpg证书,用来验证包
    curl -fsSL 
### 使用 kubeadm 部署 Kubernetes 集群的详细指南 Kubernetes 是一种强大的容器编排系统,但其部署过程对初学者来说可能较为复杂。kubeadm 是一个官方推荐的工具,旨在简化 Kubernetes 集群的部署过程。通过 kubeadm,用户可以使用简单的命令快速部署一个最小可行的 Kubernetes 集群,并在此基础上进行扩展。 #### 1. 环境准备 在开始部署之前,需要确保以下条件已满足: - 所有节点已安装 Docker 或其他兼容的容器运行时(如 containerd)。 - 所有节点已安装 kubeadm、kubelet 和 kubectl。 - 所有节点之间可以通过网络互相通信。 - 所有节点的时间已同步(建议使用 NTP 服务)。 - 所有节点的主机名、IP 地址和 `/etc/hosts` 文件已正确配置。 ```bash # 安装 kubeadm、kubelet 和 kubectl 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 - cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list deb https://apt.kubernetes.io/ kubernetes-xenial main EOF sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl ``` #### 2. 初始化 Kubernetes 集群 使用 `kubeadm init` 命令初始化 Kubernetes 集群。该命令会执行以下操作: - 检查节点是否满足部署要求。 - 生成集群的 CA 证书和相关密钥。 - 启动 Kubernetes 核心组件(如 API Server、Controller Manager、Scheduler 等)。 - 创建默认的 Pod 网络插件配置(如 Calico、Flannel 等)。 ```bash # 初始化 Kubernetes 集群 sudo kubeadm init ``` 执行完成后,会输出一个 `kubeadm join` 命令,用于将其他节点加入到集群中。请将该命令保存下来,以便后续使用。 #### 3. 配置 kubectl 在初始化完成后,需要配置 `kubectl` 以便与集群进行交互。执行以下命令: ```bash # 配置 kubectl mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` #### 4. 安装网络插件 Kubernetes 集群需要一个网络插件来实现 Pod 之间的通信。常见的网络插件包括 Calico、Flannel 和 Weave Net。以 Calico 为例: ```bash # 安装 Calico 网络插件 kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml ``` #### 5. 加入工作节点 在其他节点上执行 `kubeadm join` 命令,将它们加入到集群中。例如: ```bash # 将工作节点加入集群 sudo kubeadm join <control-plane-ip>:<port> --token <token> --discovery-token-ca-cert-hash sha256:<hash> ``` 确保将 `<control-plane-ip>`、`<port>`、`<token>` 和 `<hash>` 替换为实际的值。 #### 6. 验证集群状态 使用 `kubectl` 命令验证集群的状态: ```bash # 查看节点状态 kubectl get nodes # 查看 Pod 状态 kubectl get pods --all-namespaces ``` #### 7. 自定义配置(可选) kubeadm 支持通过 YAML 配置文件定义集群的详细设置。可以使用 `--config` 参数指定配置文件的路径。例如: ```bash # 使用自定义配置文件初始化集群 sudo kubeadm init --config kubeadm-config.yaml ``` 配置文件的内容可以包括集群的网络设置、证书路径、组件参数等。 #### 8. 部署附加组件(可选) kubeadm 默认只部署最小可行集群,不包括一些常用的附加组件(如 Kubernetes Dashboard、监控解决方案等)。可以通过以下命令安装这些组件: ```bash # 安装 Kubernetes Dashboard kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml ``` #### 9. 清理集群(可选) 如果需要清理集群,可以使用以下命令: ```bash # 清理集群 sudo kubeadm reset ``` 该命令会停止 Kubernetes 组件并删除相关配置文件。 --- ### 注意事项 - 确保所有节点的防火墙规则允许 Kubernetes 所需的端口(如 6443、2379-2380、10250 等)。 - 如果使用云服务提供商,可能需要配置特定的插件或网络设置。 - 定期备份集群的配置文件和证书,以防止数据丢失。 --- ### 相关问题 1. 如何在 Kubernetes 集群中安装和配置 Calico 网络插件? 2. 如何使用 kubeadm 部署高可用的 Kubernetes 集群? 3. 如何在 Kubernetes 集群中部署 Kubernetes Dashboard? 4. 如何通过 kubeadm 配置文件自定义 Kubernetes 集群? 5. 如何在 Kubernetes 集群中添加或删除工作节点?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值