热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

K8s部署,k8skubernetes

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.希望本文能帮到大家,如有不对的地方欢迎指正
推荐阅读
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • k8s+springboot+Eureka如何平滑上下线服务
    k8s+springboot+Eureka如何平滑上下线服务目录服务平滑上下线-k8s版本目录“上篇介绍了springboot+Euraka服务平滑上下线的方式,有部分小伙伴反馈k ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 如何利用 Myflash 解析 binlog ?
    本文主要介绍了对Myflash的测试,从准备测试环境到利用Myflash解析binl ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 本文介绍了禅道作为一款国产开源免费的测试管理工具的特点和功能,并提供了禅道的搭建和调试方法。禅道是一款B/S结构的项目管理工具,可以实现组织管理、后台管理、产品管理、项目管理和测试管理等功能。同时,本文还介绍了其他软件测试相关工具,如功能自动化工具和性能自动化工具,以及白盒测试工具的使用。通过本文的阅读,读者可以了解禅道的基本使用方法和优势,从而更好地进行测试管理工作。 ... [详细]
  • 像跟踪分布式服务调用那样跟踪Go函数调用链 | Gopher Daily (2020.12.07) ʕ◔ϖ◔ʔ
    每日一谚:“Acacheisjustamemoryleakyouhaven’tmetyet.”—Mr.RogersGo技术专栏“改善Go语⾔编程质量的50个有效实践” ... [详细]
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
  • 有意向可以发简历到邮箱内推.简历直达组内Leader.能做同事的话,内推奖励全给你. ... [详细]
  • 弹性云服务器ECS弹性云服务器(ElasticCloudServer)是一种可随时自助获取、可弹性伸缩的云服务器,帮助用户打造可靠、安全、灵活、高效的应用环境 ... [详细]
  • rabbitmq杂谈
    rabbitmq中的consumerTag和deliveryTag分别是干啥的,有什么用?同一个会话,consumerTag是固定的可以做此会话的名字,deliveryTag每次接 ... [详细]
author-avatar
乳酪杳杳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有