centos7下安装单机版kubernetes实战

2023-05-16

    kubernetes是docker分布式解决方案,是当前最火的docker解决方案,一般初学者适合玩单机安装。kubernetes安装很简单,只需要通过yum安装etcd,kubernetes即可。默认kubernetes会有etcd,docker,kube-apiserver,kube-controller-manager,kube-scheduler,kubelet,kube-proxy等七个依赖服务。他们构成了kubenertes生态。从服务可以看出来,kubenertes底层操作的还是docker,因为它本省就是为docker分布式服务的。

    一、直接安装,默认centos7自带了kubernetes的安装源,无需我们额外添加。 

yum install etcd kubernetes -y

    二、稍作配置,主要是针对kube-apiserver,配置文件在/etc/kubernetes目录下,修改kube-apiserver,对外暴露本机地址,另外,安全控制KUBE_ADMISSION_CONTROL也需要做修改。

    

    去掉了SecurityContextDeny,ServiceAccount 

    三、关闭防火墙,便于外部浏览器直接访问我们的http服务。 

systemctl stop firewalld
systemctl disable firewalld

    四、依次启动服务

systemctl start etcd
systemctl start docker
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
systemctl start kubelet
systemctl start kube-proxy

    五、该干点什么了,前面我们只是安装了kubenertes,并没有利用它来干活。我们可以通过kubernetes来构建一个tomcat服务,利用mysql做存储,在首页展示一个列表,这也是kubernetes权威指南的示例。 我们需要构建一个mysql服务,另外构建一个tomcat服务,对外提供30001端口访问。这些镜像在docker仓库中都有了,我们需要做的就是通过yml配置文件将这些镜像组织起来,并启动,构建服务。

 1、准备mysql-rc.yaml,这个配置文件是将mysql作为一个resource启动起来,类似docker-compose.yml,这里需要指定版本信息,镜像名称,以及端口号,最后还需要针对mysql设置一个环境变量,就是他的默认密码123456,这样mysql才会进行初始化。因为yaml文件直接粘贴格式会乱,这里直接给出截图:

    

     作为服务的配置:

     

    2、无论是作为资源,还是作为服务,创建命令都是一样的,只不过指定的文件不一样,这里分别启动他们:

    kubectl create -f mysql-rc.yaml

    kubectl create -f mysql-svc.yaml

     

     启动服务:

    

    这个时候是启动了一个docker镜像,运行的是mysql5.7,可以通过docker ps检查一下。

     

    我们可以通过kubectl describe pod mysql-xxx,查看mysql作为pod的详细信息,我们可以先通过kubectl get pods得到所有的pods,然后找到mysql的pod,如下所示:

    

    3、现在有了mysql,我们按照同样的方式构建tomcat,根据kubernetes权威指南的示例,我们稍作修改。因为我们是单机安装,无法通过dns与服务的方式通过mysql服务名直接访问mysql,我们只能通过ip的方式访问mysql,上图中我们通过kubectl describe pod mysql-xxx的命令获得了mysql启动之后docker默认分配的IP:172.17.0.2。现在来准备tomcat的配置文件:

    myweb-rc.yaml

    

    myweb-svc.yaml

    

    其中nodePort: 30001表示对外暴露的端口是30001,我们可以通过虚拟机的ip,以及这个30001可以访问我们的服务。 

    4、与mysql一样的方式启动myweb资源和服务。

    

    一般启动一个资源或者服务可能会不直接显示报错信息,但是当你查看pod详细描述的时候,会发现一直在creating或者pending,表示遇到了错误。

    当你看到如下三个状态的时候,表示启动正常了:

5、验证。

    前面我们启动了mysql,tomcat,这个应用会创建一个列表,存入mysql数据库中,当我们访问我们的demo的时候,会在页面显示列表的数据。首先访问tomcat首页:

    当你直接通过浏览器打开,会访问失败,明明开启了服务,而且防火墙也关闭了,为什么还是不能访问,只能由本机才能访问,这里很奇怪,需要暂时开启防火墙,加入一个容许30001端口的规则,然后关闭防火墙就可以了。

    

    接着访问tomcat首页和项目首页均正常:

     1)、tomcat首页 http://192.168.56.66:30001/

     2)、项目首页http://192.168.56.66:30001/demo/

    至此,感受了一把kubernetes单机安装与实战,感觉多了一些管理和api,底层其实还是docker,因为它只是docker分布式的一个解决方案,并没有替换docker。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

centos7下安装单机版kubernetes实战 的相关文章

随机推荐

  • eclipse安装pydev插件开发python程序

    做Java开发的 xff0c 想学习python xff0c 可以不用安装别的pycharm IDE xff0c 我们直接通过在eclipse中安装一个python插件pydev即可 xff0c 前提是你的机器上已经安装了python xf
  • docker私有镜像服务搭建

    docker容器技术已经在部署服务上使用的非常普遍 xff0c 主要是它的隔离性以及快速启动的特性 xff0c 一般启动一个容器 xff0c 如果镜像不存在会先去dockerhub仓库下载 xff0c 然后存储在本地 xff0c 后续可以继
  • vs2017开发第一个desktop应用程序

    desktop应用程序也叫窗口程序 xff0c 我们平时在电脑上安装的APP xff0c 都是桌面程序 xff0c 比如QQ xff0c 各种播放器 xff0c 包括浏览器 桌面程序最主要的特点 xff0c 就是点击运行之后 xff0c 会
  • 量子编程入门第一篇环境搭建dotnet-sdk+Microsoft.Quantum.IQSharp+python3.6+qsharp

    量子编程已经提上日程 xff0c 微软提供了quantum开发工具包 Microsoft Quantum Development Kit简称QDK xff0c 在visual studio 2019环境下 xff0c 可以安装quantum
  • ROS2学习笔记(十)-- ROS2 launch启动文件

    简介 xff1a 接触过ROS1的同学对launch肯定不陌生 xff0c 在ROS1中 xff0c 我们常用launch实现node和master同时启动 多节点同时启动配置等功能 xff0c ROS2中的launch也是用于多节点启动
  • 记录一次解决TypeError: 'NoneType' object is not callable的办法

    如题所示 xff0c 这是python运行时报错 xff0c 关键信息就是 xff1a TypeError 39 NoneType 39 object is not callable xff0c 错误栈信息如下 xff1a 有的文章提示 x
  • windows下VC++6.0编写c++程序连接mysql示例

    windows下通过c 43 43 编码连接mysql数据库 xff0c 需要做一些设置 xff0c 因为我们需要连接mysql并执行相关操作 xff0c 需要使用mysql提供的api xff0c 这api在mysql h头文件中定义了
  • windows修改cmd命令行字体

    默认情况下 xff0c windows命令行字体只有两种 xff0c 点阵字体和新宋体 如果你想使用系统自带的其他字体 xff0c 需要更改注册表 这里介绍如何修改 windows系统字体在目录C Windows Fonts 下 xff0c
  • centos7安装与配置DNS服务器

    centos7上安装DNS服务器可以实现域名与IP的双向解析 xff0c 即通过域名可以找到主机IP xff0c 也可以通过IP找到域名 在postfix搭建邮件服务器中 xff0c 需要用到DNS正向解析与反向解析 xff0c 因此DNS
  • springboot项目单元测试

    springboot项目和普通的spring项目一样也可以做单元测试 xff0c 一般是测试service层的方法 xff0c 在进行项目构建的时候 xff0c 需要在springboot默认依赖的基础上 xff0c 再加上spring b
  • ipfs星际文件系统初体验

    ipfs是InterPlanetary File System的简称 xff0c 即星际文件系统 xff0c 他不同于一般的操作系统文件系统 xff0c 也不同于分布式文件系统 xff0c 因为分布式文件系统最终访问文件还是采用的http协
  • truffle构建以太坊应用并测试第一个helloworld智能合约

    最近因为国家对区块链又重视起来了 xff0c 相信今年年底到明年年初会是一个区块链的新的爆发点 xff0c 也是碰巧学习了一下以太坊构建区块链应用 xff0c 以前都是简单的了解 xff0c 并没有实际动手演练 今天趁机会也学习一下区块链
  • docker启动报错:standard_init_linux.go:211: exec user process caused "no such file or directory"

    如题所示 xff0c 根据自己构建的镜像启动docker容器 xff0c 直接退出 xff0c 查看容器日志报错信息 xff0c 没有任何别的信息 网上搜索这个问题 xff0c 发现很多人都遇到过 xff0c 解决办法也各不相同 xff0c
  • windows下telnet回显解决办法

    telnet相信大家都用过 xff0c 在tcp连接中 xff0c 我们可以用来模拟发送客户端请求 xff0c 当我们输入telnet 127 0 0 1 8888连接本机的tcp 8888端口时 xff0c 连接成功后 xff0c 会进入
  • springboot与flyway集成做数据迁移

    flyway是一种用来做数据迁移的框架 xff0c 如果你的项目不是jpa 43 hibenate xff0c 比如使用的mybatis xff0c 那么你需要在实体创建之前 xff0c 在数据库中生成表结构 xff0c 然后逆向工程 xf
  • ROS2学习笔记(十一)-- ROS2 bag数据记录与回放

    简介 xff1a ROS2提供了ros2 bag命令 xff0c 可以记录指定主题的数据到文件中 xff0c 也可以将记录下的内容再发布出来 xff0c 相当于是数据的回放 xff0c 除了通过命令行的方式实现数据记录以外 xff0c 也可
  • C++实现简单链表

    链表是最常用的一种数据结构 xff0c 无论什么语言 xff0c 学习数据结构 xff0c 都绕不开链表 xff0c 下面通过c 43 43 来实现简单链表 xff0c 所谓简单链表 xff0c 就是构建链表 xff0c 然后遍历打印链表
  • 二分查找算法介绍

    二分查找算法的实现过程如下 xff1a 在排序数组中查找某一个数据项 xff0c 首先让待查数据与中间下标元素开始比较 xff0c 如果相等则返回 xff0c 如果小于中间下标元素 xff0c 重新开始从低位开始 xff0c 中间下标 1
  • centos7下安装gitlab-ci持续集成实战

    gitlab提供了ci cd持续集成 持续部署的功能 xff0c 当我们安装了gitlab之后 xff0c 需要单独再安装gitlab ci multi runner xff0c 其实就是gitlab runner xff0c 为了试验 x
  • centos7下安装单机版kubernetes实战

    kubernetes是docker分布式解决方案 xff0c 是当前最火的docker解决方案 xff0c 一般初学者适合玩单机安装 kubernetes安装很简单 xff0c 只需要通过yum安装etcd kubernetes即可 默认k