kubernetes本地部署(1.18.1)
简介:
kubernetes简称k8s时开源的容器集群管理系统,可以自动化部署,自动扩容,维护等功能
在docker的基础技术的基础上,提供了大规模容器集群管理的便捷性
k8s中有管理节点和工作节点两种类型,管理节点主要负责k8s集群管理,工作几点主要为容器和pod提供计算资源,pod和容器全都运行在工作节点上
1,先准备好两台centos7.5.1804系统的虚拟机,关闭防火墙,配置要主机映射(双节点)
然后关闭swap,因为swap开启后通过cgroups的设置的内存上限就会失效
所以swap会严重影响性能,关闭swap避免swap带来的性能问题,上面的内容所有节点都要完成
临时关闭swap: swapoff -a
永久关闭swap: sed -ri 's/.*swap.*/#&/' /etc/fstab
2,然后配置时间同步(双节点)
下载chrony配置时间同步
master设置为服务器,其他节点同步master的时间
并设置开机自启动
设置路由转发
创建k8s文件
vim /etc/sysctl.d/k8s.conf
添加以下内容
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
加载模块
modprobe br_netfilter
#这是从内核中加载模块,移除模块是(modprobe -r br_netfilter)
下面命令来查看
sysctl -p /etc/sysctl.d/k8s.conf
3,kube-proxy开启IPVS的前提需要加载内核模块(双节点完成)
创建文件
vim /etc/sysconfig/modules/ipvs.modules

然后给权限
chmod 755 /etc/sysconfig/modules/ipvs.modules
然后刷新
bash /etc/sysconfig/modules/ipvs.modules
查看是否已经加载所需内核模块
lsmod | grep -e ip_vs -e nf_conntrack_ipv4
然后所有节点安装ipset软件包
yum install ipset ipvsadm -y
注意:配置ipvs之前,默认的是iptables模式,在高版本以后两种性能差不多,可以不进行配置。
4,然后准备ipset软件包,安装docker,kubernetes默认安装的容器运行仍是docker
所以要先安装docker,docker版本要是1.13.1、17.03、17.06、17.09、18.06 和 18.09
所以先将docker包和k8s的镜像上传到master服务器
配置好k8s和docker源
安装好docker18.06,containerd.io(安装docker会自己安装),配置好镜像加速
开机自启动
docker info来查看
下载kubelet,kubeadm,kubectl工具
Kubelet 负责与其他节点集群通信,
Kubeadm是 Kubernetes 的自动化部署工具
Kubectl 是 Kubernetes 集群管理工具。
yum install -y kubelet kubeadm kubectl -y
kubelet工具开启自启动
systemctl enable kubelet
systemctl start kubelet
 以上的两个节点都要完成
5,在master节点完成初始化k8s
kubeadm init --apiserver-advertise-address 192.168.100.10 --kubernetes-version="v1.18.1" --pod-network-cidr=10.24.0.0/24
这里的k8s的版本要和软件包的版本相同
(这里要注意k8s的宿主机必须最少是2核的cpu否则无法安装
还有k8s软件包中的k8s软件包镜像,需要配置本地docker仓库,在初始化的过程中
需要拉取,宿主机必须要有网关,否则后面的网络服务无法启动)
如果不是联网的镜像仓库,就只能一个一个镜像上传到docker的镜像仓库,并tag
标记为k8s脚本需要的镜像名

如果成功初始化

会有加入集群的命令
6,检查集群状态(master)
完成kubectl工具配置
创建./kube目录
mkdir -p $HOME/.kube
#因为kubectl检查的工具会在执行用户的目录下的./kube目录中寻找config文件
配置kubectl工具,所以要有./kube目录
复制文件
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
给权限
chown $(id -u):$(id -g) $HOME/.kube/config
然后就可以使用kubectl工具

还有如果k8s使用的用户是root
直接指定即可,export KUBECONFIG=/etc/kubernetes/admin.conf
7,k8s的master节点部署flannel网络
使用kubectl apply -f kube-flannel.yml的路径
在k8s的软件包中

然后使用kubectl get pods -n kube-system来查看

如果服务没起来使用
kubectl describe pod coredns-7ff77c879f-cn6nd(服务名) -n kube-system
进行查看日志
或者kubectl get pods -A查看的更详细一点
8,然后node节点加入集群
用之前初始化master的进行加入集群

然后在master用kubectl进行管理集群
kubectl get nodes 查看所有集群
可以用kubectl help来查看kubectl命令怎么使用
9,然后开始安装dashboard图形化
kubectl apply -f recommended.yaml
kubectl apply -f dashboard-adminuser.yaml
yaml文件在k8s包中
然后检查pods状态
kubectl get pods -n kube-system
10,浏览器访问https://192.168.100.10:30000
即可
然后在master上输入
kubectl -n kube-system describe secret
来获取令牌
然后就可以进入kubernetes
如果有安装Kuboard用
http://192.168.100.10:31000进入Kuboard 的认证界面
在 Token 文本框中输入令牌后可进入 Kuboard 控制台
可以查看到集群
集群部署,node节点也要配置好docker,并加入master
其他部署方式和master差不多

                
            
浙公网安备 33010602011771号