热门标签 | 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.希望本文能帮到大家,如有不对的地方欢迎指正
推荐阅读
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文详细介绍了如何在 Android 中使用值动画(ValueAnimator)来动态调整 ImageView 的高度,并探讨了相关的关键属性和方法,包括图片填充后的高度、原始图片高度、动画变化因子以及布局重置等。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • This guide provides a comprehensive step-by-step approach to successfully installing the MongoDB PHP driver on XAMPP for macOS, ensuring a smooth and efficient setup process. ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 解决U盘安装系统后无法重启的问题
    本文详细探讨了运维新手常遇到的U盘安装系统后无法正常重启的问题,提供了从问题分析到具体解决方案的完整步骤。通过理解Boot Loader的工作原理和正确配置启动项,帮助用户顺利解决问题。 ... [详细]
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据
    go,通过,map,filter,foreach,等,流,式,ap ... [详细]
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社区 版权所有