周六作的,

慢慢完善。

#! /usr/bin/env bash

set -e
set -u
set -x

#让此脚本可以重复执行,所以加了一些判断
#使用系统的PATH环境
export PATH=$(echo $PATH)

function iptables_clear() {
    #重置iptables
    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -t nat -P PREROUTING ACCEPT
    iptables -t nat -P POSTROUTING ACCEPT
    iptables -t nat -P OUTPUT ACCEPT
    iptables -t mangle -P PREROUTING ACCEPT
    iptables -t mangle -P OUTPUT ACCEPT
    iptables -F
    iptables -t nat -F
    iptables -t mangle -F
    iptables -X
    iptables -t nat -X
    iptables -t mangle -X
}
function root_init() {
    #停止firewall防火墙,并禁止开机自启动
    systemctl stop firewalld.service
    systemctl disable firewalld.service

    iptables_clear

    #禁止selinux安全
    sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
    sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
    set +e
    setenforce
    set -e

    #关闭swap交换内存,K8S强制的,不然安装会报错
    swapoff -a
    sed -i 's/.*swap.*/#&/' /etc/fstab

    # 安装工具及加载br_netfilter, ipvs
    yum install bridge-utils ipset ipvsadm -y

    modprobe br_netfilter
    modprobe -- ip_vs
    modprobe -- ip_vs_rr
    modprobe -- ip_vs_wrr
    modprobe -- ip_vs_sh
    modprobe -- nf_conntrack_ipv4
    modprobe -- nf_conntrack_ipv6

    ipvs_no=$(cat /etc/rc.local|grep ip_vs|wc -l)
     ]; then
        echo "modprobe br_netfilter" >> /etc/rc.local
        echo "modprobe -- ip_vs" >> /etc/rc.local
        echo "modprobe -- ip_vs_rr" >> /etc/rc.local
        echo "modprobe -- ip_vs_wrr" >> /etc/rc.local
        echo "modprobe -- ip_vs_sh" >> /etc/rc.local
        echo "modprobe -- nf_conntrack_ipv4" >> /etc/rc.local
        echo "modprobe -- nf_conntrack_ipv6" >> /etc/rc.local
    fi

    # 为k8s证书生成目录
    mkdir -p /etc/kubernetes/pki/etcd
    chown -R docker.docker /etc/kubernetes/pki
     /etc/kubernetes/pki

    #配置k8s内核参数
    k8s_kernel_conf=/etc/sysctl.d/k8s.conf
    if [ -e $k8s_kernel_conf ]; then
        rm -f $k8s_kernel_conf
    fi
    cat<<EOF>$k8s_kernel_conf
    net.ipv4.ip_forward =
    net.bridge.bridge-nf-call-ip6tables =
    net.bridge.bridge-nf-call-iptables =
    net.bridge.bridge-nf-call-arptables =
    vm.swappiness=
EOF

    #使配置生效
    sysctl -p
    sysctl --system

    #安装必须软件,将其cp到指定运行目录
    yum install conntrack-tools socat -y
    yum localinstall /tmp/*.rpm -y
    # tar xf cni-plugins-amd64-v0.7.5.tgz -C /opt/cni/bin
    /bin/cp /usr/bin/kube* /usr/local/bin/

    #所有服务都设置为开机自启动
    systemctl enable kubelet

    #配置docker用户可以命令行的相关命令
    k8s_sudoers_conf=/etc/sudoers.d/k8s_sudoers
    if [ -e $k8s_sudoers_conf ]
    then
        rm -f $k8s_sudoers_conf
    fi
    cat<<EOF>$k8s_sudoers_conf
    docker ALL=(ALL)NOPASSWD: /usr/local/bin/kubeadm, kubectl, kubelet, systemctl, service, iptables, ipvsadm, docker
EOF

    cat<<EOF>/etc/sysconfig/kubelet
    KUBELET_EXTRA_ARGS="--cgroup-driver=$DOCKER_CGROUPS --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1"
EOF
} 

function k8s_reset() {
    kubeadm reset
    ifconfig cni0 down
    ip link delete cni0
    ifconfig flannel.1 down
    ip link delete flannel.1
    rm -rf /var/lib/cni/
    iptables_clear
    ipvsadm -C
}

关于k8s安装脚本方面的草稿的更多相关文章

  1. k3s单机版安装部署 附一键安装脚本

    作者:SRE运维博客 博客地址: https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/211109907029/ 相关话题:https://ww ...

  2. 一定成功 k8s 安装helm v2.17 基本命令

    一.下载helm安装脚本 1.1 介绍 Helm是Kubernetes的包管理器. 其实就是管理了一推配置文件,ds,configmap,deployment......,一类规则. 就类似: yum ...

  3. mysql 自动备份和nginx自动安装脚本

    一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...

  4. Linux安装脚本需要交互之如何实现自动安装

    Linux中shell脚本运行时经常需要进行交互,比如安装软件的过程中对license声明的确认,需要输入yes,回车之类的确认信息.这个在自动化安装的时候就会是个问题. 通常对于这个问题比较灵活的解 ...

  5. iredmail安装脚本分析(一)---iRedmail.sh

    iredmail是一套以postfix为核心的整合邮件系统的安装脚本,可以达到快速部署邮件服务器的目的.为了让自己不遗忘shell的语法,所以闲来无事,学习一下他的代码. 我从官网下载他的最新版,解压 ...

  6. CentOS 6、7下pptp vpn一键安装脚本

    之前有折腾过<CentOS 6.7下IPSEC/L2TP VPN一键安装脚本>,不稳定.不支持IOS,因此换成pptp,并已经添加到<lnmp一键安装包>.这个脚本可以单独使用 ...

  7. 17.KVM安装之虚拟磁盘,安装脚本

    1.创建磁盘 vm.list 指定虚拟磁盘名称和主机名 create_vm.sh    #创建vm.list中的虚拟磁盘,并指定大小100G #!/bin/bash VM_DIR="/opt ...

  8. 一个比较完整的Inno Setup 安装脚本(转)

    一个比较完整的Inno Setup 安装脚本,增加了对ini文件设置的功能,一个安装包常用的功能都具备了. [Setup] ; 注: AppId的值为单独标识该应用程序. ; 不要为其他安装程序使用相 ...

  9. windows 服务安装脚本拾遗

    转自:http://blog.csdn.net/susubuhui/article/details/7881096 1.安装脚本 echo 请按任意键开始安装客户管理平台的后台服务 echo. pau ...

随机推荐

  1. python zip文件压缩和解压

    压缩 import shutil zipOutputName = "1234" # 输出1234.zip fileType = "zip" # 文件类型zip ...

  2. zxing二维码

    最近二维码用的很多,同时给了个zxing.dll和demo,用着还不错,就想着自己看看源码.于是搜索到一下资料: ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码.目标是能够对QR编 ...

  3. 神经网络中的偏置项b到底是什么?

    原文地址:https://blog.csdn.net/Uwr44UOuQcNsUQb60zk2/article/details/81074408 前言        很多人不明白为什么要在神经网络.逻 ...

  4. TechnoSoftware OPCDA client(1.2.1) Error Codes

    OPCDA.NET Client Interface WrapperSummary of OPC Error Codes We have attempted to minimize the numbe ...

  5. $Django 路飞学城项目简介

    - 基于极验实现动态验证码 - 在线视频播放:cc,HTML用的Flash - 基于Rest Framework实现 API接口 - 自定义rest认证token 认证 - 序列化以及自定义验证对请求 ...

  6. (并发编程)RLock(与死锁现象),Semaphore,Even事件,线程Queue

    一.死锁现象与递归锁所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在 ...

  7. FreeSWITCH 增删模组

    今天在尝试FreeSWITCH新功能时,遇到一个问题,就是该功能所需要的模组没有加载,导致写了好久的代码不能看到效果,让人很是忧伤啊! 再此,将FS模组增删的方法记录下,以方便遇到同样问题的童鞋. 具 ...

  8. LabVIEW--为设备添加配置文件.ini

    需求:我同一个程序下载到两台机器人上,有些参数是不一样的,比如说服务器的ID或者端口,以及存放文件的位置,如果我每次下载之前改程序的话就非常麻烦了(虽然在程序里面是作为全局变量来存的),不利于后期的更 ...

  9. RabbitMQ:MSVCR120.dll ,c000001d 错误

    今天在win7上面安装RabbitMQ,安装过程没有问题,但是RabbitMQ无法启动,错误如下: 今多方查找,原因在于win7没有安装SP1的补丁包,安装完成后,启动RabbitMQ就没有问题了. ...

  10. VUE 生成二维码(qrcodejs)

    1. 概述 1.1 引入二维码生成模块 npm install qrcodejs2 --save 注意:此处安装qrcodejs2,安装依赖后可在main方法中进行全局引用设置,也可单独某个页面中进行 ...