首页 > 其他分享 >实践1-使用 ansible 快速安装 k8s 机器

实践1-使用 ansible 快速安装 k8s 机器

时间:2024-07-09 12:29:57浏览次数:19  
标签:kube ansible master playbook k8s 安装 yml

推荐:

此安装方式参考上面两个项目创建,如果刚开始搭建,直接使用上面的安装方式即可,可根据实际情况微调

项目地址:https://github.com/clay-wangzhi/ansible-collection-k8s

 相关支持

支持 Linux 的版本

  • CentOS/RHEL 7

支持的组件

 快速开始

# 更换 yum 源,如果本来就是国内源,无需更换
curl -fsSL "https://gitee.com/clay-wangzhi/shell/raw/master/repo_replace.sh" | bash

# 安装 python3
yum -y install python3

# Install dependencies from ``requirements.txt``
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

cd ansible-collection-k8s
# 根据实际情况修改 主机列表 ``inventory/hosts``、全局变量 ``group_vars/all.yml``

# 依次执行 playbook
ansible-playbook 01-preinstall.yml
ansible-playbook 02-docker.yml
ansible-playbook 03-ha.yml
ansible-playbook 04-master.yml
ansible-playbook 05-calico.yml
ansible-playbook 06-node.yml
 

Roles 介绍

preinstall:安装前准备

  • 关闭 swap 分区
  • 更换 yum 源、安装 依赖包
  • 更新 系统版本 到 centos 7.9、内核版本 到 长期支持版本 kernel-lt 5.4.196
  • 如果硬件网卡驱动不支持新版本内核,升级 网卡驱动, 针对新内核重新编译
  • 调节 CPU 性能模式为高性能
  • 禁用防火墙、SELINUX
  • 修改内核参数、加载 br_netfilter、ip_conntrack、ipvs 等 modules
  • 配置时间同步
  • 重启服务器,使用内核生效
  • 检查 内核版本
  • 检查 hostname 是否符合 DNS 规范
  • 检查 kube_service_addresses 和 kube_pods_subnet 是否为正确的网络段
  • 检查 kube_service_addresses 和 kube_pods_subnet 的网段是否冲突
  • 检查时间是否同步
  • 检查 访问外网的连通性(DNS配置是否正确)

 docker:安装Docker

  • 更换 yum 下载源
  • 安装 docker 和相关依赖
  • 新增配置目录,拷贝配置文件
  • 启动并加入开机自启

 master: 安装 master

  • 更换 yum 下载源
  • 下载 kubelet、kubeadm、kubectl 等
  • 下载 kube-apiserver、kube-controller-manager、kube-scheduler、kube-proxy、pause、etcd、coredns 等镜像
  • 启动 kubelet 服务
  • 配置 kubeadm-config.yml 初始化配置文件
  • 使用kubeadm init 进行初始化
  • master1 生产certificate key
  • 其余master 使用 kubeadm join 加入master集群

 ha:使用 haproxy + keepalived 实现master高可用,负载均衡

先申请vip

  • 安装 keepalived 、 haproxy
  • 重定向日志文件
  • keepalived 新增监控检查脚本
  • 配置keepalived、haproxy
  • 启动 keepalived、haproxy ,并配置开机自启

calico:安装配置 Calico BGP RR模型

提前设置好 LOCAL_AS、AS_NUMBER、PEER_IP,安装好后还需要网络设置一下,BGP做宣告加邻居等

  • 拷贝官方 yaml 文件
  • 替换 PODSUBNET
  • 设置 NIC 为 bond4 或 eth0
  • apply calico yaml 文件
  • 安装 并配置 calicoctl 工具
  • 拷贝 设置 为 BGP RR 模式 的一些列 yaml 文件
  • 使用 calicoctl apply 上面的yaml文件

 node:安装 node

  • 步骤和 master 2,3 安装类似,下镜像,生产凭证,kubeadm join
 

标签:kube,ansible,master,playbook,k8s,安装,yml
From: https://www.cnblogs.com/david-cloud/p/18291549

相关文章

  • 1初识Ansible
    1Ansible简介Ansible官方文档:https://docs.ansible.com/Ansible是一个IT自动化工具。它能配置系统、部署软件、编排更复杂的IT任务,如连续部署或零停机时间滚动更新。Ansible用python编写,尽管市面上已经有很多可供选择的配置管理解决方案(例如Salt,Puppet,Chef等),但它们......
  • 2 Ansible Inventory配置详解
    在使用Ansible来批量管理主机的时候,通常我们需要先定义要管理哪些主机或者主机组,而这个用于管理主机与主机组的文件就叫做Inventory,也叫主机清单。AnsibleInventory是包含静态Inventory和动态Inventory两部分的,静态Inventory指的是在文件中指定的主机和组,动态Inventory......
  • K8s 一条默认参数引起的性能问题-Pod enableServiceLinks
    问题时间线xx:xx]开发收到业务反馈接口响应超时[xx:xx]开发&SRE&中间件联合排查代码、网关、底层网络问题,无果[xx:xx] 测试环境复现排查[xx:xx] 利用差异法、排除法和经验解决,先上线[xx:xx] 根因定位 问题现象1)接口偶发性超时image-202401161814518792)容器化......
  • k8s 关闭 enableServiceLink-Pod-CPU-内存占用过高
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<特性说明:enableServiceLinks特性,是k8s提供给pod发现和访问svc的两种方案之一(另一种是DNS)。该特性在pod启动时,kubelet会将activesvc通过env {SVCNAME}_SERVICE_HOST、......
  • linux 上安装FTP : vsftpd (含常见问题:读取目录列表失败,的处理)
    服务器上有时候需要安装ftp以便调试或给不懂使用服务器命令的同学更新文件 1、安装vsftpdyumupdateyuminstallvsftpd2、编辑配置文件确保以下配置的值和下面一致anonymous_enable=NOlocal_enable=YESwrite_enable=YESchroot_local_user=YES这些配置......
  • K8s 中 Pod OOMKilled 原因
    在我们日常的工作当中,通常应用都会采用Kubernetes进行容器化部署,但是总是会出现一些问题,例如,JVM堆小于Docker容器中设置的内存大小和Kubernetes的内存大小,但是还是会被OOMKilled。在此我们介绍一下K8s的OOMKilled的ExitCode编码。 ExitCode137表明容器收到......
  • K8S学习教程(三):在PetaExpress KubeSphere 容器部署 Wiki 系统 wiki.js 并启用中文全
      背景wiki.js是非常优秀的开源Wiki系统,尽管在与xwiki功能相比,还不算完善,但也在不断进步。常用的功能还是比较实用的,如:Wiki写作、分享、权限管理功能还是非常实用的,UI设计非常的漂亮,精美的界面和直观的操作体验,能够满足小团队的基本知识管理需求。认真阅读......
  • 【yarn】安装与配置——(秒懂yarn安装用法)
    yarn安装与配置技术文档1.yarn的安装1.1使用npm安装Yarn1.2使用安装脚本1.3通过Homebrew安装(macOS)1.4通过Chocolatey安装(Windows)1.5通过安装包管理器(Linux)2.配置Yarn2.1配置镜像源2.2配置缓存目录2.3查看配置3.初始化项目4.常用命令4.......
  • 关于python Miniconda的脚本安装及 环境控制
    1.下载Miniconda安装脚本使用curl或wget命令下载Miniconda安装脚本。使用curl:curl-Ohttps://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh 使用wget:wgethttps://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.......
  • oracle12 安装文档
    前提条件Centos安装了桌面程序  配置安装环境关闭防火墙和SELinuxl SELinux设置临时设置: setenforcepermissiveroot用户执行如下步骤:vi/etc/selinux/config查看状态getenforce l 关闭防火墙systemctldisablefirewalld:永久关闭防火墙命令。重启后,防火......