基础部分参看官网介绍,很详细:https://kubernetes.io/zh
1. 快速体验(minikube)
https://github.com/kubernetes/minikube/releases
1.1 安装
1)下载minikube-windows-amd64.exe改名为minikube.exe
2)打开VirtualBox,打开cmd
3)运行minikube start --vm-driver=virtualbox --registry-mirror=https://registry.docker-cn.com
等待20分钟左右即可
开发模式多使用之。
2. kubeadm集群安装
2.1 前置要求
1)1台或多台机器,操作系统CentOS7.x-86_X64
2)硬件配置:2G或者更多RAM,2个CPU或者更多CPU,硬盘30G或更多
3)集群中所有机器之间网络互通
4)可以访问外网,需要拉取镜像
5)禁止swap分区
2.2 安装
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。这个工具能通过两条指令完成一个kubernetes集群的部署
2.2.1 创建一个Master节点
命令:kubeadm init
2.2.2 将一个Node节点加入到当前集群中
命令:kubeadm join <Master节点的IP和端口>
2.3 部署步骤
1)在所有节点上安装Docker和Kubeadm
2)部署Kubernetes Master
3)部署容器网络插件
4)部署kubernetes Node,将节点加入kubernetes集群中
5)部署Dashboard Web页面,可视化查看Kubernetes资源
3. 环境准备
我们可以使用vagrant快速创建三个虚拟机,虚拟机启动前先设置virtualBox的主机网络,现全部统一为192.168.56.1,以后所有虚拟机都是56.x的ip地址
3.1 准备vagrant脚本
Vagrantfile
如图:
Vagrant.configure("2") do |config|
(1..3).each do |i|
config.vm.define "k8s-node#{i}" do |node|
# 设置虚拟机的Box
node.vm.box = "centos/7"
# 设置虚拟机的主机名
node.vm.hostname="k8s-node#{i}"
# 设置虚拟机的IP
node.vm.network "private_network", ip: "192.168.56.#{99+i}", netmask: "255.255.255.0"
# 设置主机与虚拟机的共享目录
# node.vm.synced_folder "~/Documents/vagrant/share", "/home/vagrant/share"
# VirtaulBox相关配置
node.vm.provider "virtualbox" do |v|
# 设置虚拟机的名称
v.name = "k8s-node#{i}"
# 设置虚拟机的内存大小
# v.memory = 4096
v.memory = 2048
# 设置虚拟机的CPU个数
v.cpus = 4
end
end
end
end
3)在命令行执行命令:vagrant up
如图:
安装完成,如图所示:
3.2 开启vagrant账号密码访问
默认vagrant只能ssh访问,需要设置开启账号密码访问。进入三个虚拟机,开启root的密码访问权限
3.2.1 连接第一台虚拟机节点
命令:
vagrant ssh 虚拟机名称(k8s-node1)
例如:
3.2.2 切换root用户
su root
密码是:vagrant
如图:
3.2.3 修改配置
vi /etc/ssh/sshd_config
修改passwordAuthentication yes/no
保存并退出。
3.2.4 重启sshd服务
service sshd restart
如图:
3.2.5 退出
1)退出root
2)退出虚拟机
其他两个节点,重复上面的动作。完成之后,就可以使用X-Sheel等工具连接虚拟机了。
3.3 设置网络环境
3.3.1 查看网络环境
1)在三个节点机器上分别查看网卡
2)在三个节点机器上分别查看ip
发现三个节点的eth0都是同样的ip地址,如图:
3.3.2 设置网络
1)首先关闭所有的节点
2)设置
管理——全局设定——网络
点击上图中的加号,创建一个NAT网络,点击OK
3)分别为每一个机器设置
在弹窗中,选择网络,将“网络地址转换”改成“NAT网络”,如图:
然后,点击高级,重新生成mac地址,如图:
另外节点,相同的步骤。
注意:eth0网卡就是K8s集群用的
3.3.3 节点互ping
然后,在ping百度,如图:
3.4 设置Linux前置环境(节点都需要设置)
3.4.1 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
3.4.2 关闭Linux默认安全策略(selinux)
如图:
默认是开启的,将其关掉。
vi /etc/selinux/config
当前会话也禁掉
setenforce 0
其他节点相同的操作。
3.4.3 关闭内存交换(swap)
1)关闭当前会话(临时关闭)
swapoff -a
2)设置永久关闭
查看默认配置,如图:
执行关闭命令:
sed -ri 's/.*swap.*/#&/' /etc/fstab
如图:
3.4.4 设置主机与IP对应关系
通过hostname命令,查看当前主机名,如图:
配置主机与IP对应关系的时候,使用的是这个主机名,而不是localhost
注意:如果不想用这个主机名,可以使用命令设置主机名
hostnamectl set-hostname <newHostName>
设置主机与IP地址对应关系,需要使用eth0网卡的IP,
设置如下:
vi /etc/hosts
10.0.2.15 k8s-node1
10.0.2.4 k8s-node2
10.0.2.5 k8s-node3
如图:
3.4.5 将桥接的IPV4的流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
EOF
sysctl --system
设置这个的目的是为了防止流量统计指标的准确性
注意:sysctl --system命令是让系统应用刚才的配置
如图:
3.4.6 同步时间(可选操作)
1)安装ntpdate
yum install -y ntpdate
2)同步最新时间
ntpdate time.windows.com
如图: