作者:乳酪杳杳 | 来源:互联网 | 2023-09-23 11:42
K8S系列(一kubeadm部署目录K8S系列(一kubeadm部署一、介绍二、准备工作三、部署四、总结一、介绍1.对于k8s这个东西的介绍,博主不在这里做过多的
K8S系列(一)kubeadm部署
目录 K8S系列(一)kubeadm部署一、 介绍二、 准备工作(每台机器都需要)三、 部署四、总结
一、 介绍 1. 对于k8s这个东西的介绍,博主不在这里做过多的赘述,因为比博主解释的清楚的博客到处都是.2. 大概总结一下就是: 它是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。3. 能达到的效果: 快速部署/回滚 自动弹性伸缩 滚动升级 4. k8s能非常方便的帮助我们管理微服务集群,是我们开发和运维必备的一项知识5. 所以博主也就不多说理论了,理论知识清查看其他更专业的博客6. 博主会基于kubeadm(官方社区推出的一个用于快速部署kubernetes集群的工具)和二进制包的两种方式来对咱们的k8s做一个部署搭建7. 本文会以kubeadm的方式来部署 二、 准备工作(每台机器都需要) 机器准备 角色ip主机名master192.168.3.4hostnamectl set-hostname masternode1192.168.3.5hostnamectl set-hostname node1node2192.168.3.6hostnamectl set-hostname node2node3192.168.3.7hostnamectl set-hostname node3
关闭防火墙
2.1 systemctl stop firewalld
2.2 systemctl disable firewalld
关闭selinux(建议永久)
3.1 sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
3.2 setenforce 0 #临时
关闭swap(建议永久)
4.1 sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久
4.2 swapoff -a # 临时
对应上面表格,将hostname设置一下
本地host添加映射
cat >> /etc/hosts <
/etc/sysctl.d/k8s.conf <sysctl --system # 生效 时间同步一下
8.1 yum install -y ntpdate
8.2 ntpdate time.windows.com #生效 三、 部署 安装Docker(所有节点) 1.wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo2.yum -y install docker-ce-18.06.1.ce-3.el73.systemctl enable docker4.systemctl start docker5.docker --version # 如有docker版本信息打印出来,则表示docker安装成功6.cat > /etc/docker/daemon.json < /etc/yum.repos.d/kubernetes.repo <(下面图是上面4.2图)
(下面图是上面4.5图)
部署Flannal网络插件.目的是为集群中的所有节点创建一个新的网卡,让不同节点的docker网卡都在同一个里面(master节点) 5.1 wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml #下载文件5.2 kubectl apply -f kube-flannel.yml #应用5.3 kubectl get nodes #查看集群节点状态,此时节点已经全部ready了 (下面是上方5.3的图)
到这一步,咱们已经是基于kubeadm将集群完整的搭建完了.下一步咱们会部署一个nginx来测试一下 6.1 编写nginx的deploment-yaml文件apiVersion: apps/v1kind: Deploymentmetadata: name: nginx-deploymentspec: replicas: 3 selector: matchLabels: app: nginx-deployment template: metadata: labels: app: nginx-deployment spec: containers: - name: nginx-deployment image: nginx ports: - containerPort: 806.2 kubectl apply -f xxx.yaml #执行此命令会起3个nginx的负载,如下图.但是目前还不能提供服务,因为我们还需要配置一下svc,把端口暴露出去6.3 编写svc文件apiVersion: v1kind: Servicemetadata: name: nginxsvcspec: type: NodePort selector: app: nginx-deployment ports: - port: 80 nodePort: 30000 targetPort: 806.4 执行 kubectl create -f xxxx.yaml #生成svc6.5 执行 kubectl get pods,svc #发现下方的svc多出了一个我们自己创建的 (下面是上方6.2)
(下面是上方6.5)
访问 http://192.168.3.4:30000会发现 nginx正常运行了 四、总结 1.按照以上步骤,咱们已经完整的搭建了一个基于kubeadm的k8s集群.并且已经完成了测试2.但是这个并不是完全体,细心的朋友会发现,咱们的[master]节点目前存在单点问题,没有做高可用3.这个稍微要麻烦一下,博主后面再抽空发一篇针对高可用的部署.4.毕竟博主只是个后端开发,并不是运维人员,生产上的部署肯定不会让博主来处理的.5.但是对于咱们后端开发来说,可以不要你部署,但是流程你要知道.6.希望本文能帮到大家,如有不对的地方欢迎指正