联网环境kubeadm安装k8s

news/2024/11/8 22:34:56/

1. 配置系统环境

在所有节点上执行以下配置步骤:

  1. 禁用 SELinux

    setenforce 0
    sed -i --follow-symlinks 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  2. 关闭防火墙

    systemctl disable firewalld
    systemctl stop firewalld
  3. 禁用交换分区

    swapoff -a
    sed -i '/swap/d' /etc/fstab
  4. 加载内核模块

    cat <<EOF | tee /etc/modules-load.d/k8s.conf
    br_netfilter
    EOF
    modprobe br_netfilter
  5. 添加hosts文件

    10.0.0.22 master1
    10.0.0.23 node01
    10.0.0.24 node02
    10.0.0.25 node03

  6. 配置内核参数

    cat <<EOF | tee /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF
    sysctl --system

2. 安装 Docker

  1. 安装 Docker 的依赖项

    yum install -y yum-utils device-mapper-persistent-data lvm2
  2. 添加 Docker 仓库并安装

    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    yum install -y docker-ce-18.06.3.ce
  3. 启动 Docker

    systemctl enable docker
    systemctl start docker

3. 安装 Kubernetes 组件

  1. 添加 Kubernetes 仓库

    cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
    https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    EOF
  2. 安装指定版本的 Kubernetes

    yum install -y kubelet-1.17.5 kubeadm-1.17.5 kubectl-1.17.5
  3. 启动并启用 kubelet

    systemctl enable --now kubelet
    systemctl status kubelet

4. 初始化 Master 节点

在 Master 节点上执行以下步骤:

  1. 初始化 Kubernetes Master

    kubeadm init  --kubernetes-version=v1.17.5 --pod-network-cidr 10.244.0.0/16 --service-cidr 10.96.0.0/12  --image-repository registry.aliyuncs.com/google_containers --token-ttl=0 

    初始化完成后,终端会输出加入 Worker 节点的命令(kubeadm join),请复制保存下来供后续使用。

  2. 配置 kubectl 命令的访问

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
  3. 安装网络插件(以 Flannel 为例):

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

5. 添加 Worker 节点到集群

在每个 Worker 节点上执行以下步骤:

  1. 使用 kubeadm join 命令将节点加入集群,格式如下:

    kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
    kubeadm join 10.0.0.22:6443 --token sypjbh.2nkvwba0zac6sg73 \--discovery-token-ca-cert-hash sha256:90cb0f6f5d2b1d014ed4a1ac3497c14dfbddf4ccee48553e4280d6d5b48cc715 

    <master-ip>, <token><hash> 替换为初始化 Master 节点时生成的具体值。

  2. 加入成功后,可以在 Master 节点上使用以下命令查看节点状态:

    kubectl get nodes

6. 验证集群状态

  1. 验证节点是否加入集群

    在 Master 节点上,查看所有节点的状态:

    kubectl get nodes

    所有节点应显示 Ready 状态。

  2. 查看 Pods 状态

    kubectl get pods --all-namespaces

    所有系统 Pods 都应该运行正常,表明 Kubernetes 集群部署成功。


http://www.ppmy.cn/news/1545471.html

相关文章

基于vue3实现的聊天机器人前端(附代码)

<template><div class"container"><!-- 页面头部 --><header><h1>跟它说说话吧&#xff01;</h1><p>一个活泼的伙伴&#xff0c;为你提供情感支持&#xff01;</p></header><!-- 聊天容器 --><div c…

Go语言结构体、方法与接口

文章目录 一、结构体构造函数Go语言中的构造函数语法 二、结构体方法和接收器无参数和返回值值类型接收者指针类型接收者方法继承方法重写 三、结构体比较结构体比较要求结构体比较符号 四、接口声明接口定义接口特点接口格式标准格式接口的实现&#xff1a;空接口error接口 五…

基于matlab处理语音信号

matlab有处理语音信号的函数wavread&#xff0c;不过已经过时了&#xff0c;现在处理语音信号的函数名称是audioread选取4.wav进行处理&#xff08;只有4的通道数为1&#xff09; 利用hamming窗设计滤波器 Ham.m function [N,h,H,w] Ham(fp,fs,fc)wp 2*pi*fp/fc;ws 2*pi*…

利用Java easyExcel库实现高效Excel数据处理

在Java应用程序中&#xff0c;处理Excel文件是一项常见任务&#xff0c;尤其是在需要读取、写入或分析大量数据时。easyExcel是一个基于Java的高性能Excel处理库&#xff0c;它提供了简洁的API和优化的性能&#xff0c;以简化Excel文件的处理。本文将指导您如何使用easyExcel库…

(2024最新完整详细版)Docker部署MinIO

对象存储MinIO 对象存储是用于存储非结构化数据的数据存储架构&#xff0c;它将一个数据单元称为一个对象&#xff0c;每个对象都包含数据本身、元数据&#xff08;描述数据的信息&#xff09;和一个唯一标识符&#xff08;通常是一个URL地址&#xff09;。 MinIO是一个开源的对…

金融系统中事务

金融服务行业需要处理大量的交易和请求&#xff0c;Java的多线程能力可以有效地管理这些并发操作&#xff0c;确保系统的响应性和效率。 在金融服务行业中&#xff0c;例如一个股票交易平台&#xff0c;它需要处理大量的买入和卖出请求&#xff0c;交易逻辑会涉及数据库交互、…

《JavaEE进阶》----20.<基于Spring图书管理系统(登录+添加图书)>

PS&#xff1a;关于接口定义 接口定义&#xff0c;通常由服务器提供方来定义。 1.路径&#xff1a;自己定义 2.参数&#xff1a;根据需求考虑&#xff0c;我们这个接口功能完成需要哪些信息。 3.返回结果&#xff1a;考虑我们能为对方提供什么。站在对方角度考虑。 我们使用到的…

集合进阶------泛型(JAVA笔记第三十期)

p.s.这是萌新自己自学总结的笔记&#xff0c;如果想学习得更透彻的话还是请去看大佬的讲解 目录 泛型概念泛型类泛型接口泛型接口的实现类泛型方法可变参数的泛型方法 泛型的通配符 泛型概念 泛型&#xff0c;顾名思义&#xff0c;广泛的类型&#xff0c;使用泛型可以帮助我们…