Kubernetes快速入门
一、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快速入门相关推荐
- Kubernetes学习总结(17)—— Kubernetes 快速入门需要掌握的知识点总结
一.Docker Docker 是基于操作系统的沙盒技术,使得用户更简单和完整的去打包自己的应用.docker 底层是基于 Linux 的操作系统级别的虚拟化技术 LXC 实现:LXC 是通过 CGr ...
- Serverless Kubernetes 快速入门指南
为什么80%的码农都做不了架构师?>>> 摘要: 5月,阿里云宣布推出Serverless Kubernetes服务.开发者可在5秒内创建集群.30秒部署应用上线.用户无需管理 ...
- 3、kubernetes应用快速入门190625
一.kubernetes应用入门 1.kubectl命令 Basic Commands create Create a resource from a file or from stdin.expos ...
- Kubernetes CKA认证运维工程师笔记-Docker快速入门
Kubernetes CKA认证运维工程师笔记-Docker快速入门 1. Docker 概念与安装 1.1 Docker 是什么 1.2 Docker 基本组成 1.3 版本与支持平台 1.4 Do ...
- kubernetes 菜鸟_菜鸟系列k8s——k8s快速入门(1)
k8s快速入门 1.快速创建k8s集群 点击教程菜单 1. Create a Cluster -> Interactive Tutorial - Creating a Cluster note: ...
- 《Kubernetes零基础快速入门》简介
容器技术快速入门书<Kubernetes零基础快速入门>,京东当当天猫都有发售.定价59元,打折一下更合适. Kubernetes为容器化的应用提供了资源调度.部署.运行.服务发现.扩容和 ...
- 深入浅出Istio:Service mesh快速入门与实践-读书笔记(By GisonWin)
01 服务网格历史 (以后补充) 02 服务网格的基本特性 连接 微服务错综复杂,要完成其业务目标,连接问题是首要问题.连接存在于所有服务的整个lifcecycle中,用于维持服务的运行. 安全 保障 ...
- 容器编排技术 -- AWS EC2快速入门
容器编排技术 -- AWS EC2快速入门 前提条件 1.您需要一个AWS账户,访问http://aws.amazon.com获得. 2.安装并配置AWS命令行界面. 3.你需要一个拥有EC2全部权限 ...
- MinIO部署快速入门
MinIO部署快速入门 MinIO是一个云原生的应用程序,旨在在多租户环境中以可持续的方式进行扩展.编排(orchestration)平台为MinIO的扩展提供了非常好的支撑.以下是各种编排平台的Mi ...
- 分布式MinIO快速入门
分布式MinIO快速入门 分布式Minio可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务.由于硬盘分布在不同的节点上,分布式Minio避免了单点故障. 分布式Minio有什么好处? 在大 ...
最新文章
- python语言程序设计基础答案第四章_《Python语言程序设计基础》第四章笔记
- [经典面试题]二叉树宽度
- SQL 2008 外网访问说明
- 第七届蓝桥杯决赛真题 - 凑平方数-全排列+dfs+set去重
- Word2Vec训练同义词模型
- 打造人脉不如打造自己
- gamma分布_深度学习需要掌握的 13 个概率分布(含代码)
- 电子科学与技术毕业论文题目【452个】
- Java word转pdf字体格式和样式变乱的问题
- 如何理解静态库与动态库
- QT FOR 安卓动态旋转屏幕
- 2020-11-10大众点评字体反爬抓取信息
- 计算机右键无法新建excel,右键新建中没有excel怎么删除_右键新建中没有excel怎么办...
- badboy录制网站出现css样式混乱,网页的图标点击没反应
- 傻妞机器人新版安装教程
- Stata绘图:多维柱状图绘制
- 包过滤防火墙配置举例
- DBL_EPSILON和 FLT_EPSILON的用法
- 软件公司要咨询顾问干什么?
- FPGA接口-PMOD,FMC与SYZYGY