关于k8s安装脚本方面的草稿
周六作的,
慢慢完善。
#! /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安装脚本方面的草稿的更多相关文章
- k3s单机版安装部署 附一键安装脚本
作者:SRE运维博客 博客地址: https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/211109907029/ 相关话题:https://ww ...
- 一定成功 k8s 安装helm v2.17 基本命令
一.下载helm安装脚本 1.1 介绍 Helm是Kubernetes的包管理器. 其实就是管理了一推配置文件,ds,configmap,deployment......,一类规则. 就类似: yum ...
- mysql 自动备份和nginx自动安装脚本
一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...
- Linux安装脚本需要交互之如何实现自动安装
Linux中shell脚本运行时经常需要进行交互,比如安装软件的过程中对license声明的确认,需要输入yes,回车之类的确认信息.这个在自动化安装的时候就会是个问题. 通常对于这个问题比较灵活的解 ...
- iredmail安装脚本分析(一)---iRedmail.sh
iredmail是一套以postfix为核心的整合邮件系统的安装脚本,可以达到快速部署邮件服务器的目的.为了让自己不遗忘shell的语法,所以闲来无事,学习一下他的代码. 我从官网下载他的最新版,解压 ...
- CentOS 6、7下pptp vpn一键安装脚本
之前有折腾过<CentOS 6.7下IPSEC/L2TP VPN一键安装脚本>,不稳定.不支持IOS,因此换成pptp,并已经添加到<lnmp一键安装包>.这个脚本可以单独使用 ...
- 17.KVM安装之虚拟磁盘,安装脚本
1.创建磁盘 vm.list 指定虚拟磁盘名称和主机名 create_vm.sh #创建vm.list中的虚拟磁盘,并指定大小100G #!/bin/bash VM_DIR="/opt ...
- 一个比较完整的Inno Setup 安装脚本(转)
一个比较完整的Inno Setup 安装脚本,增加了对ini文件设置的功能,一个安装包常用的功能都具备了. [Setup] ; 注: AppId的值为单独标识该应用程序. ; 不要为其他安装程序使用相 ...
- windows 服务安装脚本拾遗
转自:http://blog.csdn.net/susubuhui/article/details/7881096 1.安装脚本 echo 请按任意键开始安装客户管理平台的后台服务 echo. pau ...
随机推荐
- Linux内存管理 (10)缺页中断处理【转】
转自:https://www.cnblogs.com/arnoldlu/p/8335475.html 专题:Linux内存管理专题 关键词:数据异常.缺页中断.匿名页面.文件映射页面.写时复制页面.s ...
- curl的http上传文件代码
int http_post_file(const char *url, const char *user, const char *pwd, const char *filename){ ass ...
- .NET之美 第一部分C#语言基础
第一章 类型基础 1 值类型与引用类型 CLR 支持两种类型:值类型和引用类型, C#的所有值类型均隐式派生自System.ValueType: 结构体:struct(直接派生于System.Valu ...
- java.sql.SQLException: Column count doesn't match value count at row 1 解决办法
♦ 所存储的数据与数据库表的字段类型定义不匹配. ♦ 解决办法: 检查dao层(数据访问层)的sql语句中赋值的参数是否与数据库中的字段个数.字段类型一致.
- centos6.9安装crontab
yum install vixie-cron crontabs //安装 chkconfig crond on //开机自启动 service crond start //启动 然后就是执行 cron ...
- 003_crlf注入漏洞
一. (1) 线上收到一个crlf 注入的漏洞. 同时启用80和443才会暴露,配置如下: server { listen 80; listen 443 ssl; server_name www.jy ...
- RocketMQ实战快速入门
转自:https://www.jianshu.com/p/824066d70da8 一.RocketMQ 是什么 Github 上关于 RocketMQ 的介绍:RcoketMQ 是一款低延 ...
- JQery插件zClip ----实现粘贴复制功能
使用了这个插件,但是用在table,td中话,我是一个列表来的,对此使用此插件还是有点问题的?点击其中的一个会全部都被选中. <script type="text/javascript ...
- 解决定位工具报错Error while parsing UI hierarchy XML file: Invalid ui automator hierarchy file.
在微信自动化测试中,偶尔会出现某个页面一直无法读取到页面元素的情况,原因是页面未加载完成 解决方式:1.重启APP 2.建议上下滑动当前页面,如朋友圈,会出现滑动到某个地方,出现可以读取到的情况 参考 ...
- python相关的安装软件
本次安装的系统是WINDOWS系统 一.python3.anaconda和python2 1.准备工具:python3.python2安装包可以直接从官网下载https://www.python.or ...