kubernetes-实践篇

安装k8s

安装前准备

硬件要求

软硬件 最低配置 推荐配置
cpu和内存 Master:最少2core4G ;Node:最少4core16G Master:4core,16G ,Node:根据需要运行的容器数量配置
Linux操作系统 基于x86_64架构的各种Linux发行版本,包括Red Hat Linux、centOS、Fedora、Ubuntu等,Kernel版本要求在3.10及以上。也可以在谷歌的GCE或者Amazon的AWS云平台上进行安装 centOS7 、Red Hat Linux7

配置信息

创建5台虚拟机,配置如下:

kind cpu 内存 系统 简介
M1 2 4 centOS7 本机虚拟机
M2 4 4 centOS7 IP:192.168.0.120虚拟机
M3 4 4 centOS7 IP:192.168.0.108虚拟机
N1 4 4 centOS7 本机虚拟机
N1 4 4 centOS7 本机虚拟机

ps:由于是通过xshell远程访问的同一局域网下NAT模式的虚拟机所以通过192.168.0.120物理机的8765端口指向虚拟机192.168.96.130的22端口,当然也可以桥连接方式。
kubernetes-实践篇_第1张图片

关闭防火墙(在安全的内网环境中)

systemctl disable firewalld
systemctl stop firewalld
#禁用SELinux,让容器可以读取主机文件系统
setenforce 0

关闭交换内存

#临时关闭
swapoff -a
#永久关闭
vi /etc/fstab
#将 /dev/mapper/centos-swap swap swap default 0 0注释掉

ps:当然可以只开放特定端口

配置Master

Master节点需要部署etcd、kube-apiserver、kube-controller-manager、kube-scheduler

hosts配置

#修改主机名
hostnamectl set-hostname k8s-M1
#修改hosts文件
vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.128      k8s-M1
192.168.0.120      k8s-M2
192.168.0.108      k8s-M3
192.168.0.129      k8s-N1
192.168.0.130      k8s-N2

下载etcd

去GitHub选择版本
我这里使用的是v3.4.9

#下载etcd
wget --no-check-certificate https://github.com/etcd-io/etcd/releases/download/v3.4.9/etcd-v3.4.9-linux-amd64.tar.gz
#解压
tar zxvf etcd-v3.4.9-linux-amd64.tar.gz 
#将etcd和etcdctl文件复制到/usr/bin下
cp etcd-v3.4.9-linux-amd64/{etcd,etcdctl} /usr/bin
#编辑etcd配置信息
vim /usr/lib/systemd/system/etcd.service
要注意的是下面这个配置
#etcd数据保存的目录,需要在启动etcd服务之前进行创建
WorkingDirectory=/var/lib/etcd/
------------------------
ExecStart=/usr/bin/etcd
------------------------
#etcd默认监听http://127.0.0.1:2379地址供客户端连接
#启动etcd服务,并加入到开机启动
systemctl daemon-reload
systemctl enable etcd.service
systemctl start etcd.service
#查看etcd情况
etcdctl endpoint health

下载k8s

去GitHub选择版本
我这里使用的是v1.18.5

#下载
curl  https://storage.googleapis.com/kubernetes-release/release/v1.18.5/kubernetes-server-linux-amd64.tar.gz -O kubernetes-server-linux-amd64.tar.gz
#解压
tar -zxvf kubernetes-server-linux-amd64.tar.gz 
#复制到/usr/bin下
cp /kubernetes/kubernetes/server/bin/{kube-apiserver,kube-controller-manager,kube-scheduler} /usr/bin

kube-apiserver服务

#编辑apiservice配置信息
vim /usr/lib/systemd/system/kube-apiserver.service
#--etcd-servers:指定etcd服务的url
#--storage-backend:指定etcd的版本,从k8s V1.6开始,默认为etcd3
#--insecure-bind-address:apiserver绑定主机的非安全端口号,默认为8080
#--service-cluster-ip-range:k8s集群中service的虚拟IP地址段范围,以CIDR格式表示,例:169.169.0.0/16该IP范围不能与物理机的真实IP段有重合
#--service-node-port-range:k8s集群中service可映射的物理机端口号范围,default:30000-32767
#--adminssion_control:k8s集群的准入控制设置,各个控制模块以插件形式依次生效
#--logtostderr: 设置为false表示将日志写入文件,不写入stderr
#--log-dir:日志目录
#--v:日志级别

kube-controller-manager服务(依赖于kube-apiserver服务)

vim /usr/lib/systemd/system/kube-controller-manager.service
#--master:指定apiserver的URL地址
#--logtostderr:设置为false表示将日志写入文件,不写入stderr
#--log-dir:日志目录
#--v:日志级别

kube-scheduler服务(依赖于kube-apiserver服务)

vim /usr/lib/systemd/system/kube-scheduler.service
#--master:指定apiserver的URL地址
#--logtostderr:设置为false表示将日志写入文件,不写入stderr
#--log-dir:日志目录
#--v:日志级别

启动Master节点服务

#按以下顺序加入开机启动并启动服务
systemctl daemon-reload
systemctl enable kube-apiserver.service
systemctl start  kube-apiserver.service
systemctl enable kube-controller-manager
systemctl start  kube-controller-manager
systemctl enable kube-scheduler
systemctl start  kube-scheduler
#验证服务状态,running表示启动成功
systemctl status kube-apiserver
systemctl status kube-controller-manager
systemctl status kube-scheduler
#ps:出错可以查看log
cat /var/log/messages|grep kube-apiserver|grep -i error

配置Node

Node节点需要部署docker、kubelet、kube-proxy

未完待续

你可能感兴趣的:(微服务,docker,kubernetes)