1分钟部署单机版kubernetes 1.13.4

该博客详细介绍了如何在单机环境中快速部署kubernetes 1.13.4。通过脚本化安装步骤,包括下载easypack、获取离线二进制文件、调整配置和安装服务,可以在1分钟内完成安装。作者提供了简化管理脚本,简化了 systemctl 操作,并特别提到了pause容器镜像的处理。整个安装过程在33秒内完成,但手动批准CSR步骤未自动化。
摘要由CSDN通过智能技术生成

这篇文章整理一下单机版本的kubernetes的所有安装脚本的执行过程,之所以使用单机版本,主要是便于说明,脚本化以及变量可配置化之后,基本上的内容修改设定文件即可,应该可以简单实现1主n从的设定。本文以脚本的方式进行固化,内容仍然放在github的easypack上,鉴于脚本内容也非常简单,无非就是,设定systemd的service文件与参数,拷贝离线二进制文件,启动服务并确认,所以内容不再说明,代码本身少量的注释应该已经足够说明,如有错误可直接在csdn联系或者github上联系均可。

  • 安装单机版kubernetes离线设定文件,使用如下步骤即可。

步骤1:下载easypack

[root@host131 tmp]# git clone https://github.com/liumiaocn/easypack.git
Cloning into ‘easypack’…
…省略
[root@host131 tmp]#

步骤2: 下载相关离线二进制文件

  • 修改并确定要下砸的各组件的版本号
[root@host131 tmp]# cd easypack/k8s/shell/
[root@host131 shell]# head -n11 step0-get-binaries.sh 
#!/bin/sh

TYPE_OS=linux
TYPE_ARCH=amd64
VER_CFSSL=R1.2
VER_KUBERNETES=v1.13.4
VER_ETCD=v3.3.12
VER_DOCKER=17.03.2-ce
VER_CNI=v0.7.4
VER_FLANNEL=v0.10.0
DIR_DOWNLOAD=/tmp
[root@host131 shell]#

执行如下命令即可完成下载

sh step0-get-binaries.sh

缺省的情况下会在/tmp/binaries下进行二进制的收集,可自行修改

[root@host131 shell]# head -n10 install.cfg 
#!/bin/sh

#######BEGIN: SETTING: BASIC#########
ENV_HOME_BINARY=/tmp/binaries
ENV_HOME_CFSSL=${ENV_HOME_BINARY}/cfssl
ENV_HOME_ETCD=${ENV_HOME_BINARY}/etcd
ENV_HOME_FLANNEL=${ENV_HOME_BINARY}/flannel
ENV_HOME_DOCKER=${ENV_HOME_BINARY}/docker
ENV_CURRENT_HOSTIP="192.168.163.131"
#######END  : SETTING: BASIC#########
[root@host131 shell]#

下载请自行完成,如无法完成二进制下载,后续可提供百度网盘,这实在是

步骤3: 调整配置

最简单的方式,就是把如下的配置文件中的IP进行全文替换应该即可:192.168.163.131

[root@host131 shell]# ls install.cfg 
install.cfg
[root@host131 shell]#

步骤4: 清空数据并安装

管理脚本的说明

目前的功能,稍微包了一下,参看如下usage即可知道:

[root@host131 shell]# sh all-k8s-mgnt.sh 
Usage: all-k8s-mgnt.sh ACTION TYPE
       ACTION:start|stop|restart|status|install|clear
       TYPE:master|node|docker|ssl|apiserver|scheduler|controller
            kubelet|kubeproxy|flannel|etcd

[root@host131 shell]#

主要是一行行的systemctl和执行各个脚本太繁琐,稍作简化。需要说明的是clear会删除所有的临时文件和设定文件,请各位执行之前务必确认不要删错

if [ _"$ACTION" = _"clear" ]; then
  # in order to avoid rm -rf / : here hard coding for default dir
  echo "## data dir clear operation begins..."
  echo " # clear ssl dirs "
  rm -rf /etc/ssl/{
   ca,etcd,flannel,k8s} 
  echo " # clear etc dirs " 
  rm -rf /etc/{
   docker,flannel,k8s,etcd,kubernetes}
  echo " # clear log dirs "
  rm -rf /var/log/kubernetes
  echo " # clear working dirs or data dirs"
  rm -rf /var/lib/kubelet /var/lib/k8s /var/lib/docker /var/lib/etcd 
  echo "## data dir clear operation ends  ..."
  exit 0
fi

之所以没有参数化是因为,rm -rf 太容易传错,万一产生了个/ xxx的错误参数传进,锅就大了,请诸君谨慎为之。
另外需要说明的是pause镜像。另外众所周知,需要使用到pause镜像,这个镜像本来在download的脚本中取得,配置化最为合适,但是不知道源,只能使用docker pull取下,而且这样需要download脚本安装docker,但是由于pause的源码很少,size也很小,所以将此镜像pull下来压缩之后放到了源码目录中,我也很绝望。

执行命令:
sh all-k8s-mgnt.sh stop all; sh all-k8s-mgnt.sh clear all; sh all-k8s-mgnt.sh install all

  • 执行日志
[root@host131 shell]# sh all-k8s-mgnt.sh stop all; sh all-k8s-mgnt.sh clear all; sh all-k8s-mgnt.sh install all
## Fri Mar 29 05:57:32 CST 2019 ACTION: stop  Service: ssl begins ...
## Fri Mar 29 05:57:32 CST 2019 ACTION: stop  Service: ssl ends  ...

## Fri Mar 29 05:57:32 CST 2019 ACTION: stop  Service: etcd begins ...
## Fri Mar 29 05:57:32 CST 2019 ACTION: stop  Service: etcd ends  ...

## Fri Mar 29 05:57:32 CST 2019 ACTION: stop  Service: apiserver begins ...
## Fri Mar 29 05:57:32 CST 2019 ACTION: stop  Service: apiserver ends  ...

## Fri Mar 29 05:57:32 CST 2019 ACTION: stop  Service: scheduler begins ...
## Fri Mar 29 05:57:32 CST 2019 ACTION: stop  Service: scheduler ends  ...

## Fri Mar 29 05:57:32 CST 2019 ACTION: stop  Service: controller begins ...
## Fri Mar 29 05:57:33 CST 2019 ACTION: stop  Service: controller ends  ...

## Fri Mar 29 05:57:33 CST 2019 ACTION: stop  Service: flannel begins ...
## Fri Mar 29 05:57:33 CST 2019 ACTION: stop  Service: flannel ends  ...

## Fri Mar 29 05:57:33 CST 2019 ACTION: stop  Service: docker begins ...
## Fri Mar 29 05:57:33 CST 2019 ACTION: stop  Service: docker ends  ...

## Fri Mar 29 05:57:33 CST 2019 ACTION: stop  Service: kubelet begins ...
## Fri Mar 29 05:57:33 CST 2019 ACTION: stop  Service: kubelet ends  ...

## Fri Mar 29 05:57:33 CST 2019 ACTION: stop  Service: kubeproxy begins ...
## Fri Mar 29 05:57:33 CST 2019 ACTION: stop  Service: kubeproxy ends  ...

## data dir clear operation begins...
 # clear ssl dirs 
 # clear etc dirs 
 # clear log dirs 
 # clear working dirs or data dirs
## data dir clear operation ends  ...
## Fri Mar 29 05:57:33 CST 2019 ACTION: install  Service: ssl begins ...
2019/03/29 05:57:33 [INFO] generating a new CA key and certificate from CSR
2019/03/29 05:57:33 [INFO] generate received request
2019/03/29 05:57:33 [INFO] received CSR
2019/03/29 05:57:33 [INFO] generating key: rsa-2048
2019/03/29 05:57:34 [INFO] encoded CSR
2019/03/29 05:57:34 [INFO] signed certificate with serial number 585243779407386144618990056827689634538064257244
/etc/ssl/ca/ca-key.pem	/etc/ssl/ca/ca.pem

2019/03/29 05:57:34 [INFO] generate received request
2019/03/29 05:57:34 [INFO] received CSR
2019/03/29 05:57:34 [INFO] generating key: rsa-2048
2019/03/29 05:57:34 [INFO] encoded CSR
2019/03/29 05:57:34 [INFO] signed certificate with serial number 708327339669302515990753380895187969493749436475
2019/03/29 05:57:34 [WARNING] This certificate lacks a "hosts" field. This makes it unsuitable for
webs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值