一、Kubernetes快速入门

使用Kubernetes创建Tomcat容器的步骤:

1 、定义服务的RC文件(RepliactionController)

2、将定义好的RC文件发布到k8s集群中

3、创建一个当前服务于kubernetes service关联的SVC文件

4、将定义好的SVC文件发布到k8s集群中

1.1 环境准备

1、关闭CentOS防火墙

systemctl disable firewalld
systemctl stop firewalld

2、更新yum

yum update

3、安装etcd和kubernets

etcd是一个高可用的分布式键值(key-value)数据库,etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现。

yum install -y etcd kubernets

4、启动服务

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

如果docker启动失败,请参考(vi /etc/sysconfig/selinux 把selinux后面的改为disabled,重启

一波机器,再重启docker就可以了)

1.2 创建发布RC

1、创建Tomcat对应的RC文件,命名为mytomcat-rc.yaml

apiVersion: v1
kind: ReplicationController
metadata: name: mytomcat
spec: replicas: 2 selector: app: mytomcat template: metadata: labels: app: mytomcat spec: containers: - name: mytomcat image: tomcat:7-jre7ports: - containerPort: 8080

2、将创建好的RC文件发布到k8s集群中

kubectl create -f mytomcat-rc.yaml

然后通过以下命令查看RC的状态信息

kubectl get rc

结果如下,表示创建成功

NAME      DESIRED   CURRENT   READY     AGE
mytomcat    1         1         1         1d

结果如下,表示创建失败

NAME      DESIRED   CURRENT   READY     AGE
mytomcat    1         0         0         1d

创建失败的话,解决方案如下:

  • 编辑 /etc/kubernetes/apiserver 配置文件中 KUBE_ADMISSION_CONTROL 配置项,删除 SecurityContextDeny,ServiceAccount 这两个配置参数,然后保存配置文件

  • 重启kube-apiserver

systemctl restart kube-apiserver
  • 删除已创建RC
kubectl delete -f tomcat-rc.yaml
  • 重新创建RC
kubectl create -f tomcat-rc.yaml

如果输出结果如下所示,而且一直都保持这样状态的话,则说明RC创建完成,但是创建Pod的过程异常

NAME      DESIRED   CURRENT   READY     AGE
mytomcat    1         1         0/1       1d

出现该情况的话通过下面的命令来查看Pod的启动情况

kubectl get pods

如果输出的结果如下所示,则进一步表明是Pod创建过程异常造成的

NAME             READY     STATUS              RESTARTS   AGE
mytomcat-3vr92   0/1       ContainerCreating   0          24m
mytomcat-t7jhd   0/1       ContainerCreating   0          24m

出现该问题的处理方法如下所示:

1、通过如下命令查看Pod启动的详细情况和异常情况

kubectl describe pod mytomcat-3vr92

如果异常提示是由于缺失 /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt 文件造成的 registry.access.redhat.com/rhel7/pod-infrastructure:latest 镜像无法拉取到的话,只需要如下的处理

2、通过yum命令安装缺失文件依赖的服务python-rhsm-certificates,安装命令如下:

yum install -y *rhsm*

3、通过docker命令手动拉取registry.access.redhat.com/rhel7/pod-infrastructure:latest 镜像,命令如下

docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest

当镜像下载完成,Pod会自动进入Running状态

http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm
rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem
docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest

1.3 创建发布SVC

1、创建对应的Service服务,命名为mytomcat-svc.yaml

apiVersion: v1
kind: Service
metadata: name: mytomcat
spec: type: NodePortports:- port: 8080nodePort: 30002selector:app: mytomcat

2、将定义好的SVC文件发布到k8s集群中,命令如下:

kubectl create -f mytomcat-svc.yaml

3、查看SVC文件启动情况命令如下:

kubectl describe svc mytomcat

输出结果如下:

Name:                mytomcat
Namespace:          default
Labels:             <none>
Selector:           app=mytomcat
Type:               NodePort
IP:                 10.254.72.123
Port:               <unset>   8080/TCP
NodePort:           <unset>   30002/TCP
Endpoints:          172.17.0.2:8080,172.17.0.3:8080
Session Affinity:   None
No events.

1.4 查看容器运行情况

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x4ZRmKnd-1593176391291)(assets/1593174473066.png)]

1.5 访问测试

访问地址: http://192.168.19.121:30002/

结果如下则表示服务创建成功

如果出现下面的结果,则表示tomcat出现问题:

1、进入创建的Tomcat容器当中

docker exec -it 668343b0fd55(容器id) /bin/bash

2、查看当前目录文件,并且进入webapps文件夹中

ls -l

显示total 0,问题就出在这里,webapps文件夹下没有东西

3、将 webapps.dist文件夹下的内容复制到给webapps文件夹

mv webapps.dist webapps

4、重新访问tomcat,成功

当中

docker exec -it 668343b0fd55(容器id) /bin/bash

2、查看当前目录文件,并且进入webapps文件夹中

ls -l

显示total 0,问题就出在这里,webapps文件夹下没有东西

3、将 webapps.dist文件夹下的内容复制到给webapps文件夹

mv webapps.dist webapps

4、重新访问tomcat,成功

Kubernetes快速入门相关推荐

  1. Kubernetes学习总结(17)—— Kubernetes 快速入门需要掌握的知识点总结

    一.Docker Docker 是基于操作系统的沙盒技术,使得用户更简单和完整的去打包自己的应用.docker 底层是基于 Linux 的操作系统级别的虚拟化技术 LXC 实现:LXC 是通过 CGr ...

  2. Serverless Kubernetes 快速入门指南

    为什么80%的码农都做不了架构师?>>>    摘要: 5月,阿里云宣布推出Serverless Kubernetes服务.开发者可在5秒内创建集群.30秒部署应用上线.用户无需管理 ...

  3. 3、kubernetes应用快速入门190625

    一.kubernetes应用入门 1.kubectl命令 Basic Commands create Create a resource from a file or from stdin.expos ...

  4. Kubernetes CKA认证运维工程师笔记-Docker快速入门

    Kubernetes CKA认证运维工程师笔记-Docker快速入门 1. Docker 概念与安装 1.1 Docker 是什么 1.2 Docker 基本组成 1.3 版本与支持平台 1.4 Do ...

  5. kubernetes 菜鸟_菜鸟系列k8s——k8s快速入门(1)

    k8s快速入门 1.快速创建k8s集群 点击教程菜单 1. Create a Cluster -> Interactive Tutorial - Creating a Cluster note: ...

  6. 《Kubernetes零基础快速入门》简介

    容器技术快速入门书<Kubernetes零基础快速入门>,京东当当天猫都有发售.定价59元,打折一下更合适. Kubernetes为容器化的应用提供了资源调度.部署.运行.服务发现.扩容和 ...

  7. 深入浅出Istio:Service mesh快速入门与实践-读书笔记(By GisonWin)

    01 服务网格历史 (以后补充) 02 服务网格的基本特性 连接 微服务错综复杂,要完成其业务目标,连接问题是首要问题.连接存在于所有服务的整个lifcecycle中,用于维持服务的运行. 安全 保障 ...

  8. 容器编排技术 -- AWS EC2快速入门

    容器编排技术 -- AWS EC2快速入门 前提条件 1.您需要一个AWS账户,访问http://aws.amazon.com获得. 2.安装并配置AWS命令行界面. 3.你需要一个拥有EC2全部权限 ...

  9. MinIO部署快速入门

    MinIO部署快速入门 MinIO是一个云原生的应用程序,旨在在多租户环境中以可持续的方式进行扩展.编排(orchestration)平台为MinIO的扩展提供了非常好的支撑.以下是各种编排平台的Mi ...

  10. 分布式MinIO快速入门 ​​​​​​​

    分布式MinIO快速入门 分布式Minio可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务.由于硬盘分布在不同的节点上,分布式Minio避免了单点故障. 分布式Minio有什么好处? 在大 ...

最新文章

  1. python语言程序设计基础答案第四章_《Python语言程序设计基础》第四章笔记
  2. [经典面试题]二叉树宽度
  3. SQL 2008 外网访问说明
  4. 第七届蓝桥杯决赛真题 - 凑平方数-全排列+dfs+set去重
  5. Word2Vec训练同义词模型
  6. 打造人脉不如打造自己
  7. gamma分布_深度学习需要掌握的 13 个概率分布(含代码)
  8. 电子科学与技术毕业论文题目【452个】
  9. Java word转pdf字体格式和样式变乱的问题
  10. 如何理解静态库与动态库
  11. QT FOR 安卓动态旋转屏幕
  12. 2020-11-10大众点评字体反爬抓取信息
  13. 计算机右键无法新建excel,右键新建中没有excel怎么删除_右键新建中没有excel怎么办...
  14. badboy录制网站出现css样式混乱,网页的图标点击没反应
  15. 傻妞机器人新版安装教程
  16. Stata绘图:多维柱状图绘制
  17. 包过滤防火墙配置举例
  18. DBL_EPSILON和 FLT_EPSILON的用法
  19. 软件公司要咨询顾问干什么?
  20. FPGA接口-PMOD,FMC与SYZYGY

热门文章

  1. 行为金融(二):行为金融的心理学基础
  2. 66个求职应聘技巧性问答(一)
  3. Markowitz有效边界投资组合——利用python
  4. oracle分页查询最高效,oracle 分页 高效写法总结
  5. 频繁gc是什么意思_一次解决jvm GC过于频繁的经历
  6. 网工必知 | 什么叫一层交换机,二层交换机,三层交换机?
  7. 12.21 linux前戏
  8. Web:仿苹果官网首页HTML和CSS
  9. 牛客小白月赛2 J.美
  10. 这是历史上程序员被黑的最惨的一次,原谅我发出了杀猪般的笑声!