节点Kubernetes实验手册

kubernetes  时间:2021-02-21  阅读:()

Kubernetes实验手册

1 .1 准备安装环境

在开始Kubernetes的安装前首先要准备好安装环境。

1 .1 .1创建虚拟机

使用克隆的方式创建3台虚拟机主机名分别为master、 node 1、 node2。3台虚拟机的资源分配如下表所示

1 .1 .2设置各主机免密码登录

安装Kubernetes需要和节点之间可以免密码登录。

1.设置主机名映射

在每一个节点的/etc/hosts文件写入以下内容

192.168 .2.84 master

192.168 .2.81 node1

192.168 .2.82 node2

2.创建密钥

在每一个节点 以root用户执行以下命令创建密钥多打回车

# ssh-keygen

在root下面的有一个.ssh文件夹如果连不上就全删了重新做一次。

3. 复制密钥

在每一个节点上运行以下命令把密钥复制到各节点包括本节点# ssh-copy-id hostname

例如

# ssh-copy-id master

# ssh-copy-id node1

# ssh-copy-id node2

在第x个节点复制完成后运行以下命令就可以免密码登录主机# ssh hostname

例如

# ssh master

# ssh node1

# ssh node2

然后就能直接切换到不同机器上了。每个节点上都测试一下。

1 .1 .3关闭防火墙和SELinus

1 . 在各节点运行以下命令关闭防火墙

# systemctl stop firewalld

# systemctl disable firewalld

2 . 在各节点进行以下操作关闭S ELinuxsetenforce 0

编辑“/etc/s elinux/c onfig”文件把其中的

SELINUX=enforcing

改为

SELINUX=disabled

然后重启主机。这是两套安全标准。注意只改第一行改第二行请直接重装系统。

1 .2 安装Dockerdoc ker-ce版本有多种安装方式本次实验采用下载二进制安装包的方式进行安装。

在浏览器中输入以下地址https://download.docker.com/linux/static/stable/x86_64/

登录后的页面如下图所示。

下载“docker-18.09.0.tgz”到node节点的/home/software目录不需要解压。或者直接curl安装yum install –y curl

# curl –fsSL "https://get.docker.com/" | sh

编辑文件install-docker.sh写入以下内容

#!/bin/shusage( ) {echo "Usage: $0 FILE_NAME_DOCKER_CE_TAR_GZ"echo " $0 docker-17.09 .0-ce.tgz"echo "Get docker-ce binary from:https://download.docker.com/linux/static/stable/x86_64/"echo "eg: wgethttps://download.docker.com/linux/static/stable/x86_64/docker-17. 09.0-ce.tgz"echo ""

}

SYSTEMDDIR=/usr/lib/systemd/system

SERVICEFILE=docker.service

DOCKERDIR=/usr/bin

DOCKERBIN=docker

SERVICENAME=dockerif [ $# -ne 1 ] ; thenusageexit 1else

FILETARGZ="$1"fiif [ ! -f ${FILETARGZ} ] ; thenecho "Docker binary tgz files does not exist, please check it"echo "Get docker-ce binary from:https://download.docker.com/linux/static/stable/x86_64/"echo "eg: wgethttps://download.docker.com/linux/static/stable/x86_64/docker-17. 09.0-ce.tgz"exit 1fiecho "##unzip : tar xvpf $ {FILETARGZ}"tar xvpf ${FILETARGZ}echoecho "##binary : ${DOCKERBIN} copy to ${DOCKERDIR}"cp -p ${DOCKERBIN}/* ${DOCKERDIR} >/dev/null 2>&1which ${DOCKERBIN}echo "##systemd service: $ {SERVICEFILE}"echo "##docker.service: create docker systemd file"cat >${SYSTEMDDIR}/${SERVICEFILE} <<EOF

[Unit]

Description=Docker Application Container Engine

Documentation=http://docs.docker.com

After=network.target docker.socket

[Service]

Type=notify

EnvironmentFile=-/run/flannel/docker

WorkingDirectory=/usr/local/bin

ExecStart=/usr/bin/dockerd \

-H tcp: //0. 0.0.0 :4243 \

-H unix:///var/run/docker.sock \

--selinux-enabled=false \

--log-opt max-size=1g

ExecReload=/bin/kill -s HUP $MAINPID

# Having non-zero Limit*s causes performance problems due to accountingoverhead

# in the kernel. We recommend using cgroups to do container-local accounting.LimitNOFILE=infinity

LimitNPROC=infinity

LimitCORE=infinity

# Uncomment TasksMax if your systemd version supports it.

# Only systemd 226 and above support this version.

#TasksMax=infinity

TimeoutStartSec=0

# set delegate yes so that systemd does not reset the cgroups of dockercontainers

Delegate=yes

# kill only the docker process, not all processes in the cgroup

KillMode=process

Restart=on-failure

[Install]

WantedBy=multi-user.target

EOFecho ""systemctl daemon-reloadecho "##Service status: ${SERVICENAME}"systemctl status ${SERVICENAME}echo "##Service restart: $ {SERVICENAME}"systemctl restart ${SERVICENAME}echo "##Service status: ${SERVICENAME}"systemctl status ${SERVICENAME}echo "##Service enabled: $ {SERVICENAME}"systemctl enable ${SERVICENAME}echo "## docker version"docker version

【第二种安装方法】或者winSCP工具安装。 soft目录有安装文件然后把docker安

装文件上传到master、 node 1和node2上。新建个文件夹存文件。

注意Soft—k8s-docker-software里面有个压缩文件docker-18.09.0.tar选择二进制上传。ins tall-doc ker.s h选择文本上传。在linux机器新建的文件夹里面执行

注意如果是在Windows下编辑这个文件并上传到node节点的/home/software目录在上传的时候需要用文本方式不要用二进制方式如下图所示

图2选择用文本方式上传上传后给文件添加可执行权限

# chmod 755 install-docker.sh

或者执行这个命令

# chmod +x install-docker.sh

然后执行以下命令安装Doc ker

./install-docker.sh docker-18.09.0.tar执行安装用docker version命令看一下版本

18.09.0

这样docker就安装完成了。

执行时会自动启动Docker服务如图3所示

图3查看D o cker服务是否已经启动执行以下命令查看Docker版本

# docker version

输出结果如图4所示

图4查看D o cker版本信息

上传soft/k8s/images里面的四个文件到master node1 node2的image文件夹中。cd imagedocker images发现docker里面还没有镜像docker load – input centos. tar 加载centos镜像docker images发现docker里面已经存在centOS镜像

或者

Docker load < nginx.tar

Docker pull [image_name]可以从网上下载知名镜像

至此准备工作完成。

1 .3 创建CA证书

1 .3.1下载程序文件

在master节点/home/software 目录 使用wget命令直接下载 或者软件包soft/k8s/software下面的乱七八糟都上传上去二进制这样就不用wget安装了。如果没有安装使用先使用如下命令进行安装

# yum install -y wget

然后使用如下命令下载这两个工具软件

# wget https://pkg.cf ssl.org/R1 .2/cf ssl_linux-amd64

# wget https://pkg.cfssl.org/R1 .2/cfssljson_linux-amd64

下载完成后使用如下命令更改文件名称

# mv cfssl_linux-amd64 cfssl

# mv cfssljson_linux-amd64 cfssljson

然后运行以下命令给这两个工具软件加上可执行权限

# chmod +x cfssl cfssljson

用以下命令把这两个工具软件复制到/usr/bin/目录

# cp cfssl cfssljson /usr/bin

然后使用如下命令把这两个工具软件复制到其他两个节点的/usr/bin目录# scp cfssl cfssljson node1:/usr/bin

# scp cfssl cfssljson node2:/usr/bin

1 .3.2创建密钥和证书

Mas ter节点使用以下命令创建目录用于存放CA证书及密钥文件

# mkdir -p /etc/kubernetes/ssl

进入这个目录然后运行以下命令

# cfssl print-defaults config > config.json

# cfssl print-defaults csr > csr.json

把config.json文件名改为ca-config.json并使用VI编辑器修改文件为如下结果{

"signing" : {

"default" : {

"expiry" : "43824h"

} ,

"profiles" : {

"kubernetes" : {

"usages" : [

"signing",

"key encipherment",

"server auth",

"client auth"

] ,

"expiry" : "43824h"

}

}

}

}

把csr.json改名为ca-csr.json并使用VI编辑器把文件修改为以下内容{

"CN" : "kubernetes",

"key" : {

"algo" : "rsa",

"size" : 4096

} ,

"names" : [

{

"C" : "CN",

"ST" : "SD",

"L" : "QD",

"O" : "k8s",

"OU" : "System"

}

]

}

运行以下命令生成密钥和证书文件注意-符号可能出问题

# cfssl gencert -initca ca-csr. json | cfssljson -bare ca

生成密钥和证书文件的过程如图5所示

图5生成密钥和证书文件

命令生成了c a.c sr、 c a-key.pem、 c a.pem三个文件。其中c a.c sr是证书请求文件c a-key.pem是私钥文件 c a.pem是证书文件。后面所有的证书全部基于这3个。

然后把这三个文件复制到node 1和node2节点的相同目录下先创建目录# scp ca.csr ca-key.pem ca.pem node1 :/etc/kubernetes/ssl

# scp ca.csr ca-key.pem ca.pem node2 :/etc/kubernetes/ssl

后续各个组件的密钥和证书都会以这几个文件基础进行创建。

1 .4 安装和配置Etcd

这是节点之间的数据库负责数据同步、数据备份、数据验证。所以要Etcd奇数节点。

下载软件

到https://github.c om/c oreos/etc d/releas es下载etc d-v3.3.8-linux-amd64.tar.gz如图6所示

图6下载Et cd软件包

下载后把etc d-v3.3.8-linux-amd64.tar.gz文件放入/home/software 目录然后使用以下命令解压文件

# tar xzvf etcd-v3.3. 8-linux-amd64.tar.gz

进入解压后的目录

# cd etcd-v3.3.8-linux-amd64

gcorelabs:CDN业务节点分布100多个国家地区,免费版提供1T/月流量

卢森堡商家gcorelabs是个全球数据中心集大成的运营者,不但提供超过32个数据中心的VPS、13个数据中心的cloud(云服务器)、超过44个数据中心的独立服务器,还提供超过100个数据中心节点的CDN业务。CDN的总带宽容量超过50Tbps,支持免费测试! Gcorelabs根据业务分,有2套后台,分别是: CDN、流媒体平台、DDoS高防业务、块存储、cloud云服务器、裸金属服务器...

Virtono:€23.7/年,KVM-2GB/25GB/2TB/洛杉矶&达拉斯&纽约&罗马尼亚等

Virtono最近推出了夏季促销活动,为月付、季付、半年付等提供9折优惠码,年付已直接5折,而且下单后在LET回复订单号还能获得双倍内存,不限制付款周期。这是一家成立于2014年的国外VPS主机商,提供VPS和服务器租用等产品,商家支持PayPal、信用卡、支付宝等国内外付款方式,可选数据中心包括罗马尼亚、美国洛杉矶、达拉斯、迈阿密、英国和德国等。下面列出几款VPS主机配置信息,请留意,下列配置中...

ReliableSite:美国服务器租用,洛杉矶/纽约/迈阿密等机房;E3-1240V6/64GB/1TSSD,$95/月

reliablesite怎么样?reliablesite是一家于2006年成立的老牌美国主机商,主要提供独服,数据中心有迈阿密、纽约、洛杉矶等,均免费提供20Gbps DDoS防护,150TB月流量,1Gbps带宽。月付19美金可升级为10Gbps带宽。洛杉矶/纽约/迈阿密等机房,E3-1240V6/64GB内存/1TB SSD硬盘/DDOS/150TB流量/1Gbps带宽/DDOS,$95/月,...

kubernetes为你推荐
微信如何建群在微信里怎么创建一个群别人可以加入扫描二维码的加入http与https的区别https://和http://区别数码资源网有什么网站弄相片效果比较好的?不兼容安卓手机软件不兼容怎么办?mate8价格现在买华为mate8高配划算吗分词技术怎样做好百度分词技术和长尾词优化网管工具网管软件好用吗?什么样的网管软件好呢?我想管理二十台电脑,让其中的四五台可以上网,其它的只能上局域网,谁能推荐一款软件吗?如果出钱买也可以!谢谢了!虚拟机软件下载谁有好的虚拟机软件?怎么上传音乐如何将电脑上的音乐传到MP3上声母是什么什么是声母
代理主机 php网站空间 如何查询域名备案号 怎样申请域名 blackfriday 美国主机推荐 cdn服务器 tightvnc mysql主机 空间出租 免空 卡巴斯基官方免费版 河南移动邮件系统 165邮箱 699美元 泉州电信 adroit 佛山高防服务器 网站在线扫描 国内域名 更多