k8s安装以及安装过程中遇到的问题
背景:因为公司需要针对operator进行开发,Operator 是 Kubernetes API 的客户端,充当自定义资源的的控制器。自己之前没有搞过k8s,所以打算搞一套本地的环境,一来可以作为自己的个人环境,随便搞,二来也可以熟悉一下k8s的大概流程套路,
内容简述:
1、本文主要写了在虚拟机上搭建 k8s 1 master 2 node的过程。
2、在安装过程中遇到的两个问题:
* 虚拟机ip设置问题,导致node无法正常加入到master中
* flannel插件安装失败,导致各个节点状态均为:NotReady
本地配置:
通过VirtualBox虚拟出来3台centos7+的虚拟机。
1.0. 环境初始化
1.1. linux 系统配置
1、检查操作系统的版本,要求centos7.5以上
cat /etc/redhat-release
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kwin3sX8-1624895171877)(E:\work-ext\typora-img\image-20210628165945881.png)]
2、主机名解析
vi /etc/hosts
10.0.2.6 master
10.0.2.15 node1
10.0.2.5 node2
3、时间同步
设置
systemctl start chronyd
#开机启动
systemctl enable chronyd
4、禁用iptables和firewalld
systemctl stop firewalld
systemctl disable firewalld
# 默认没有iptables
systemctl stop iptables
systemctl disable iptables
5、禁用selinux
linux系统下的一个安全服务
vi /etc/selinux/config
设置
SELINUX=disabled
6、禁用swap分区
vi /etc/fstab
# 注释掉这行
#/dev/mapper/centos-swap swap swap defaults 0 0
7、修改Linux的内核参数
vi /etc/sysctl.d/kubernetes.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
设置上面后,重新加载配置:
[root@10 ~]# sysctl -p
记载网桥过滤模块:
[root@10 ~]# modprobe br_netfilter
查看网桥过滤模块是否加载成功:
[root@10 ~]# lsmod | grep br_netfilter
br_netfilter 22256 0
bridge 146976 1 br_netfilter
8、配置ipvs功能
k8s中service两种代理模式ipvs和iptables
ipvs性能比iptables性能好
1、安装ipset和ipvsadm
[root@10 ~]# yum install ipset ipvsadmin -y
2、添加需要加载的模块写入脚本文件
cat <<EOF >> /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_s