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
LOCVPS商家我们还是比较熟悉的老牌的国内服务商,包括他们还有其他的产品品牌。这不看到商家的信息,有新增KVM架构轻量/迷你套餐,提供的机房包括香港云地和美国洛杉矶,适用全场8折优惠,月付29.6元起。LOCVPS是一家成立于2011年的稳定老牌国人商家,主要从事XEN、KVM架构的国外VPS销售,主推洛杉矶MC、洛杉矶C3、香港邦联、香港沙田电信、香港大埔、日本东京、日本大阪、新加坡等数据中心...
CUBECLOUD(魔方云)成立于2016年,亚太互联网络信息中心(APNIC)会员,全线产品均为完全自营,专业数据灾备冗余,全部产品均为SSD阵列,精品网络CN2(GIA) CU(10099VIP)接入,与当今主流云计算解决方案保持同步,为企业以及开发者用户实现灵活弹性自动化的基础设施。【夏日特促】全场产品88折优惠码:Summer_2021时间:2021年8月1日 — 2021年8月8日香港C...
天上云服务器怎么样?天上云是国人商家,成都天上云网络科技有限公司,专注于香港、美国海外云服务器的产品,有多年的运维维护经验。世界这么大 靠谱最重,我们7*24H为您提供服务,贴心售后服务,安心、省事儿、稳定、靠谱。目前,天上云香港大带宽物理机服务器572元;20Mbps带宽!三网CN2线路,香港沙田数据中心!点击进入:天上云官方网站地址香港沙田数据中心!线路说明 :去程中国电信CN2 +中国联通+...