码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • K8s集群环境搭建


    文章目录

    • 环境规划
      • 集群类型
      • 安装方式
      • 主机规划
        • 环境搭建
        • 主机安装
      • 环境初始化
      • 安装docker
        • 安装docker-ce
        • 安装kubernetes组件
        • 安装kubeadm kubelet kubectl工具
        • 配置containerd
          • 部署k8s的master节点(在master节点运行)
        • 安装pod网络插件(CNI/flannel)

    环境规划

    集群类型

    Kubernetes集群大体上分为两类:一主多从和多主多从
    一主多从:一台master节点和多台node节点,搭建简单,但是有单机故障风险,适用于测试环境
    多主多从:多台master节点和多台node节点,搭建麻烦,安全性高,适用于生产环境
    在这里插入图片描述

    安装方式

    Kubernetes有多种部署方式,目前主流的方式有kubeadm、minikube、二进制包
    1、Minikube:一个用于快速搭建单节点kubernetes的工具
    2、Kubeadm:一个用于快速搭建kubernetes集群的工具,https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/
    3、二进制包:从官网下载每个组件的二进制包,依次去安装,此方式对于理解kubernetes组件更加有效,https://github.com/kubernetes/kubernetes
    说明:现在需要安装kubernetes的集群环境,但是又不想过于麻烦,所有选择使用kubeadm方式

    主机规划

    角色 ip地址 组件
    master 192.168.40.99 docker,kubectl,kubeadm,kubelet
    node1 192.168.40.100 docker,kubectl,kubeadm,kubelet
    node2 192.168.40.101 docker,kubectl,kubeadm,kubelet

    环境搭建

    本次环境搭建需要安装三台Linux系统(一主二从),内置centos7以上的系统,然后在每台linux中分别安装docker。kubeadm(1.25.0),kubelet(1.25.4),kubelet(1.25.4).

    主机安装

    安装虚拟机过程中注意下面选项的设置:
    1、操作系统环境:cpu2个 内存2G 硬盘50G centos7+
    2、语言:中文简体/英文
    3、软件选择:基础设施服务器
    4、分区选择:自动分区/手动分区
    5、网络配置:按照下面配置网络地址信息
    网络地址:192.168.40(99、100、101)
    子网掩码:255.255.255.0
    默认网关:192.168.40.2
    DNS:8.8.8.8
    6、主机名设置:
    Master节点:master
    Node节点:node1
    Node节点:node2

    环境初始化

    1、查看操作系统的版本

    # 此方式下安装kubernetes集群要求Centos版本要在7或之上 
    [root@master ~]# cat /etc/redhat-release
    
    • 1
    • 2

    2、主机名解析 (三个节点都做)
    为了方便集群节点间的直接调用,在这个配置一下主机名解析,企业中推荐使用内部DNS服务器

    vim /etc/hosts
    192.168.40.99   master.example.com master
    192.168.40.100  node1.example.com node1
    192.168.40.101  node2.example.com node2
    
    • 1
    • 2
    • 3
    • 4

    3、时钟同步
    kubernetes要求集群中的节点时间必须精确一致,这里使用chronyd服务从网络同步时间
    企业中建议配置内部的时间同步服务器

    Master:
    vim /etc/chrony.conf
    local stratum 10
    
    systemctl restart chronyd
    systemctl enable chronyd
    hwclock  -w
    
    Node1和node2:
    vim /etc/chrony.conf
    server master.example.com  iburst
    systemctl restart chronyd
    systemctl enable chronyd
    hwclock  -w
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    4、禁用firewalld、selinux、postfix(三个节点都做)
    关闭防火墙、selinux,postfix----3台主机都配置

    systemctl stop fi
    • 相关阅读:
      Docker 容器
      Java快速启动
      记录在vue开发上遇到的一些问题
      快乐组队赛XD(2017 Chinese Multi-University Training, BeihangU Contest)
      Hadoop面试题(HDFS篇)
      FreeSWITCH 1.10 源码阅读(1)-服务启动及 Event Socket 模块工作原理
      Netty入门指南之NIO 网络编程
      零基础入门多媒体音频(7)-AAOS audio
      Privacy-preserving record linkage on large real world datasets论文总结
      C++基类与派生类构造和析构顺序以及虚函数的调用
    • 原文地址:https://blog.csdn.net/ZHJSXX/article/details/127900189
    • 最新文章
    • 攻防演习之三天拿下官网站群
      数据安全治理学习——前期安全规划和安全管理体系建设
      企业安全 | 企业内一次钓鱼演练准备过程
      内网渗透测试 | Kerberos协议及其部分攻击手法
      0day的产生 | 不懂代码的"代码审计"
      安装scrcpy-client模块av模块异常,环境问题解决方案
      leetcode hot100【LeetCode 279. 完全平方数】java实现
      OpenWrt下安装Mosquitto
      AnatoMask论文汇总
      【AI日记】24.11.01 LangChain、openai api和github copilot
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
    正则表达式工具 cron表达式工具 密码生成工具

    京公网安备 11010502049817号