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版本的的维护)。

下边一张图已经说明了我要干什么了。接下来一点一点走吧!

Kubernetes

需要5~6台服务器配置2C4G内存机器即可因后边会结合监控去做,提前打出资源富余量,

本文采用3master 2node方式进行集群部署,生产环境可保留3master 对node进行扩展即可。

192.168.91.11

nginx

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 1.15

kubeadm安装Kubernetes 1.15 实践

kubeadm安装高可用kubernetes v1.14.1

Helm安装及配置

kubernetes 入门kubernetes学习路线发展历程及重要组件介绍

Istio 1.15 发布,支持 arm64 架构处理器