Kubernetes 1.15 安装及组件关系(前期准备工作篇)
Posted 拎壶冲冲冲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kubernetes 1.15 安装及组件关系(前期准备工作篇)相关的知识,希望对你有一定的参考价值。
本文按照常见k8s架构图来梳理操作过程,因为现在k8s都已经1.2x版本了,老的技术藏着掖着也没什么用了,故清理磁盘灰尘的时候顺便发到网上,本文篇幅较长可能会写几万字,涉及1.15版本安装、组件说明,一键安装、1.15升级1.19过程与问题、1.19版本安装、组件说明,与1.15版本区别、1.19版本维护、1.2x版本(这个版本还是比较新的,我作为压箱底技术等1.3x版本后再发1.2x版本的的维护)。
下边一张图已经说明了我要干什么了。接下来一点一点走吧!
需要5~6台服务器配置2C4G内存机器即可因后边会结合监控去做,提前打出资源富余量,
本文采用3master 2node方式进行集群部署,生产环境可保留3master 对node进行扩展即可。
192.168.91.11 | |
192.168.91.18 | master-1 |
192.168.91.19 | master-2 |
192.168.91.20 | master-3 |
192.168.91.21 | node-1 |
192.168.91.22 | node-2 |
1、系统初始化
1.1 初始化工具安装
#所有节点
[root@master-1 ~]# yum install net-tools vim wget lrzsz git -y
1.2 关闭防火墙与Selinux
#所有节点
[root@master-1 ~]# systemctl stop firewalld
[root@master-1 ~]# systemctl disable firewalld
[root@master-1 ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
[root@master-1 ~]# reboot
1.3设置时区
#所有节点
[root@master-1 ~]# \\cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime -rf
1.4关闭交换分区
#所有节点
[root@master-1 ~]# swapoff -a
[root@master-1 ~]# sed -i / swap / s/^\\(.*\\)$/#\\1/g /etc/fstab
1.5设置系统时间同步
#所有节点
[root@master-1 ~]# yum install -y ntpdate
[root@master-1 ~]# ntpdate -u ntp.api.bz
[root@master-1 ~]# echo "*/5 * * * * ntpdate time7.aliyun.com >/dev/null 2>&1" >> /etc/crontab
[root@master-1 ~]# service crond restart
[root@master-1 ~]# chkconfig crond on
hostnamectl set-hostname master-1
1.6 设置主机名
#所有节点
[root@master-1 ~]# cat > /etc/hosts <<EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.91.18 master-1
192.168.91.19 master-2
192.168.91.20 master-3
192.168.91.21 node-1
192.168.91.22 node-2
EOF
1.7 设置免密码登录
#从任意Master节点分发配置到其他所有的节点(包括其他的Master与Node)
#本例中从master-1分发
[root@master-1 ~]# yum install -y expect
[root@master-1 ~]# ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa
#密码更换
[root@master-1 ~]# export mypass=123456s
[root@master-1 ~]# name=(master-1 master-2 master-3 node-1 node-2)
[root@master-1 ~]# for i in $name[@];do
expect -c "
spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@$i
expect
\\"*yes/no*\\" send \\"yes\\r\\"; exp_continue
\\"*password*\\" send \\"$mypass\\r\\"; exp_continue
\\"*Password*\\" send \\"$mypass\\r\\";
"
done
#连接测试
[root@master-1 ~]#ssh master-2
1.8 优化内核参数
#所有节点
cat >>/etc/sysctl.conf<<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
vm.swappiness=0
fs.file-max=52706963
fs.nr_open=52706963
EOF
#应用内核配置
modprobe br_netfilter
sysctl -p
1.9 高可用节点安装Keepalived(注:如果采用的是云主机到此基础配置篇结束)
#192.168.91.18/19两台机器
[root@master-1 ~]# yum install -y keepalived
#注意修改网卡地址与SLAVE节点的优先级
[root@master-1 ~]# cat >/etc/keepalived/keepalived.conf <<EOL
global_defs
router_id KUB_LVS
vrrp_script CheckMaster
script "curl -k https://192.168.91.254:6443"
interval 3
timeout 9
fall 2
rise 2
vrrp_instance VI_1
state MASTER
interface ens32
virtual_router_id 61
priority 100
advert_int 1
nopreempt
authentication
auth_type PASS
auth_pass 111111
virtual_ipaddress
192.168.91.254/24 dev ens32
track_script
CheckMaster
EOL
#SLAVE
#修改state为slave, priority 为 90
1.9.2启动keepalived
[root@master-1 ~]# systemctl enable keepalived && systemctl restart keepalived
[root@master-1 ~]# service keepalived status
1.10安装Nginx
#192.168.91.11机器(在任意服务器部署即可)
#添加版本库
[root@harbor ~]# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/x86_64/
gpgcheck=0
enabled=1
#安装
[root@harbor ~]# yum install nginx-1.12.2 -y
#删除默认页面
[root@harbor harbor]# rm /etc/nginx/conf.d/default.conf -rf
#编辑配置文件
[root@harbor harbor]# vim /etc/nginx/nginx.conf
#最后添加 http之外
stream
log_format main $remote_addr $upstream_addr - [$time_local] $status $upstream_bytes_sent;
access_log /var/log/nginx/access.log main;
upstream apiserver
server 192.168.91.18:6443;
server 192.168.91.19:6443;
server 192.168.91.20:6443;
server
listen 192.168.91.254:6443;
proxy_connect_timeout 1s;
proxy_timeout 2s;
proxy_pass apiserver;
#启动服务
[root@harbor harbor]# chkconfig nginx on
[root@harbor harbor]# service nginx start
至此准备篇完成,明天找时间吧,更新第二部分证书安装篇。
以上是关于Kubernetes 1.15 安装及组件关系(前期准备工作篇)的主要内容,如果未能解决你的问题,请参考以下文章
kubeadm安装高可用kubernetes v1.14.1