1.集群类型
kubernetes集群大体上分为两类,一主多从和多主多从
- 一主多从:一台master节点和多台node节点,搭建简单,但是有单机故障风险,适合用于测试环境
- 多主多从:多台master节点和多台node节点,搭建麻烦,安全性高,适合用于生产环境
2.集群安装方式
kubernetes有多种部署方式,目前主流的方式有kubeadm、minikube、二进制安装
- minikube:快速搭建单节点的kubernetes工具
- kubeadm:快速搭建kubernetes集群的工具
- 二进制包:每个组件都是单独的二进制包,依次去安装,可以对kubernetes更加理解
3.环境规划
IP地址 | 操作系统 | 角色 | 配置 |
---|
192.168.81.210 | centos7.5 | Master | CPU:2核 内存:2G |
192.168.81.220 | centos7.5 | Node-1 | CPU:2核 内存:2G |
192.168.81.230 | centos7.5 | Node-2 | CPU:2核 内存:2G |
4.系统初始化
系统初始化要求所有节点都执行
所有节点配置yum源
4.1.检查操作系统版本
kubeadm安装的k8s要求系统版本在centos 7.5以上
4.2.主机名解析
4.3.时间同步
kubernetes要求集群中节点的时间必须一致
4.4.禁用防火墙
4.5.禁用selinux
4.6.禁用swapp分区
将fstab文件中的swap分区注释掉即可
kubernetes要求每个节点都要禁用swap设备
4.7.修改linux内核参数
添加网桥过滤和地址转发功能
4.8.配置ipvs功能
在kubernetes中service有两种代理模式,一种是基于iptables的,一种是基于ipvs的
ipvs的性能比iptables要高,因此采用ipvs,如果要用ipvs,需要手动载入ipvs模块
4.9.重启服务器
初始化操作配置完成后需要重启服务器
5.部署kubernetes集群
5.1.所有节点部署docker
5.2.所有节点安装kubernetes组件
选择软件版本
所有节点成功安装kubeadm、kublet、kubectl
安装完kubelet先不用启动,启动会报错
5.3.所有节点准备集群组件镜像包
在安装kubernetes集群之前,必须要提前准备好集群需要的镜像
由于镜像都在国外,阿里云上有对应的镜像,我们可以直接从阿里云上下载,然后修改为国外镜像的名字即可
首先查一下适合当前k8s集群版本的组件镜像包在去下载,其实主要是看pause、etcd、coredns这三个组件的版本,apiserver、contorller-manager、scheduler、proxy都和kubeadm的版本一致
5.4.master节点初始化
只在master操作,初始化成功后,kubelet组件会自动启动,并且使用kubectl get node命令也可以看到集群中已经有master节点了
初始化过程产生了很多有价值的信息输出
.Your Kubernetes control-plane has initialized successfully! //这个提示说明master节点已经初始化成功了
To start using your cluster, you need to run the following as a regular user: //这个提示说要想使用k8s集群,还需要执行下面三条命令
You should now deploy a pod network to the cluster.
Run “kubectl apply -f [podnetwork].yaml” with one of the options listed at: //这个提示说明想要部署容器,还需要配置网络模型
https://kubernetes.io/docs/concepts/cluster-administration/addons/
Then you can join any number of worker nodes by running the following on each as root: //这个提示说明要想让其他node节点加入集群需要执行下面的命令
kubeadm join 192.168.81.210:6443 —token z0hiaw.woiwvjvx8o1kd4ef
–discovery-token-ca-cert-hash sha256:4009b1fad096615c3409fcd670feb8a915f7f1f6eb03bc3adcb1164cf871b960
5.5.node节点初始化
只在node节点操作
5.6.集群配置flannel网络
当集群组件全部运行成功,网络模型flannel没问题后,集群节点就都是可用状态了
集群安装好之后所有操作都在master上进行
6.部署一个nginx容器验证集群可用性
30376就是svc暴露出的随机端口,使用集群节点任意ip都可以访问到30376端口的应用
7.k8s命令开启tab功能
8.部署rancher管理k8s
导入集群
文章来源于:https://blog.51cto.com/jiangxl/4803878
仅做个人备份学习使用.