k8s跑一个nginx-app体验
kubectl run 并不是直接创建一个 Pod,而是先创建一个 Deployment 资
源(replicas=1),再由与 Deployment 关联的 ReplicaSet 来自动创建 Pod
[root@localhost 00]# kubectl run --image=nginx:alpine nginx-app --port=80
kubectl run --generator=deployment/apps.v1beta1 is DEPRECATED and will be removed in a future version. Use kubectl create instead.
deployment.apps/nginx-app created
[root@localhost 00]# kubectl get deployment
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
app 10 10 10 10 8d
filled-oyster-heapster 1 1 1 1 3d21h
httpd 3 3 3 3 8d
nginx-app 1 1 1 1 21s
nginx-deployment 2 2 2 2 10d
orderly-ostrich-mychart 1 1 1 1 6d21h
prometheus-operator 1 1 1 0 3d21h
[root@localhost 00]# kubectl get pods|grep nginx
nginx-app-787756bcb-2bzmw 1/1 Running 0 2m11s
nginx-deployment-5fd98dbf5f-th4jb 1/1 Running 1 10d
nginx-deployment-5fd98dbf5f-zhmjz 1/1 Running 1 10d
[root@localhost 00]# kubectl get pod nginx-app-787756bcb-2bzmw
NAME READY STATUS RESTARTS AGE
nginx-app-787756bcb-2bzmw 1/1 Running 0 2m24s
kubectl get - 类似于 docker ps ,查询资源列表
kubectl describe - 类似于 docker inspect ,获取资源的详细信息
kubectl logs - 类似于 docker logs ,获取容器的日志
kubectl exec - 类似于 docker exec ,在容器内执行一个命令
#在容器内执行一个命令
[root@localhost 00]# kubectl exec nginx-app-787756bcb-2bzmw ps aux
PID USER TIME COMMAND1 root 0:00 nginx: master process nginx -g daemon off;6 nginx 0:00 nginx: worker process7 root 0:00 ps aux
#获取资源的详细信息
[root@localhost 00]# kubectl describe pod nginx-app-787756bcb-2bzmw
Name: nginx-app-787756bcb-2bzmw
Namespace: default
Node: 10.0.60.51/10.0.60.51
Start Time: Fri, 23 Nov 2018 14:17:47 +0800
Labels: pod-template-hash=787756bcbrun=nginx-app
Annotations: <none>
Status: Running
IP: 172.20.0.101
Controlled By: ReplicaSet/nginx-app-787756bcb
Containers:nginx-app:Container ID: docker://dc6fb85d19546ec1a3a1a68005fbe59fc9cebaba456ed78808e33879c3312536Image: nginx:alpineImage ID: docker-pullable://nginx@sha256:41dbd69d560c20712f90011689596f20a5db6d7f85436edda7f177a2e53d4da2Port: 80/TCPHost Port: 0/TCPState: RunningStarted: Fri, 23 Nov 2018 14:17:51 +0800Ready: TrueRestart Count: 0Environment: <none>Mounts:/var/run/secrets/kubernetes.io/serviceaccount from default-token-97cmq (ro)
Conditions:Type StatusInitialized True Ready True ContainersReady True PodScheduled True
Volumes:default-token-97cmq:Type: Secret (a volume populated by a Secret)SecretName: default-token-97cmqOptional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: <none>
Events:Type Reason Age From Message---- ------ ---- ---- -------Normal Scheduled 7m51s default-scheduler Successfully assigned default/nginx-app-787756bcb-2bzmw to 10.0.60.51Normal Pulling 7m51s kubelet, 10.0.60.51 pulling image "nginx:alpine"Normal Pulled 7m47s kubelet, 10.0.60.51 Successfully pulled image "nginx:alpine"Normal Created 7m47s kubelet, 10.0.60.51 Created containerNormal Started 7m47s kubelet, 10.0.60.51 Started container
上面kubectl run的应用和这个nginx-app-deployment.yaml 一样的,yml也是传说中k8s的编排。有点长,看得有点懵逼。
#nginx-app-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:labels:run: nginx-appname: nginx-appnamespace: default
spec:replicas: 1selector:matchLabels:run: nginx-appstrategy:rollingUpdate:maxSurge: 1maxUnavailable: 1type: RollingUpdatetemplate:metadata:labels:run: nginx-appspec:containers:- image: nginxname: nginx-appports:- containerPort: 80protocol: TCPdnsPolicy: ClusterFirstrestartPolicy: Always
[root@localhost 101]# kubectl create -f nginx-app-deployment.yaml
deployment.extensions/nginx-app created[root@localhost 101]# kubectl get deployment
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
app 10 10 10 10 8d
filled-oyster-heapster 1 1 1 1 3d22h
httpd 3 3 3 3 8d
nginx-app 1 1 1 1 102s
nginx-deployment 2 2 2 2 10d
orderly-ostrich-mychart 1 1 1 1 6d22h
prometheus-operator 1 1 1 0 3d21h[root@localhost 101]# kubectl get pod nginx-app-58865955ff-mxkz5
NAME READY STATUS RESTARTS AGE
nginx-app-58865955ff-mxkz5 1/1 Running 0 2m6s
如何访问上面的nginx-app应用呢???使用service
Service 为一组 Pod(通过 labels 来选择)提供一个统一的入口,并为它们提供负载均衡和自动服务发现。
#service使用nodeport类型进行映射
[root@localhost 101]# kubectl expose deployment nginx-app --port=80 --target-port=80 --type=NodePort
service/nginx-app exposed
#查看新建好的service,我本机地址是10.0.60.51
[root@localhost 101]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
heapster ClusterIP 10.68.154.222 <none> 8082/TCP 3d22h
httpd-svc NodePort 10.68.109.32 <none> 8080:32495/TCP 8d
kubernetes ClusterIP 10.68.0.1 <none> 443/TCP 10d
nginx-app NodePort 10.68.117.204 <none> 80:27110/TCP 9s
orderly-ostrich-mychart ClusterIP 10.68.204.253 <none> 80/TCP 6d22h
使用浏览器打开地址和端口,NodePort端口为27110不要选错了!!k8s中,网络是个重点。
--分割线-
定义一个file.yaml,这个一个pod类型的yaml,一个pod是可以包含多个容器的,我这儿只有一个容器,可以看到containers是一个复数了没。
apiVersion: v1
kind: Pod
metadata:name: nginxlabels:app: nginx
spec:containers:- name: nginximage: nginxports:- containerPort: 80
[root@localhost 101]# kubectl create -f file.yaml
pod/nginx created
[root@localhost 101]# kubectl get pod nginx
NAME READY STATUS RESTARTS AGE
nginx 1/1 Running 0 14s
http://www.taodudu.cc/news/show-4395341.html
相关文章:
- 【新技术】:移动支付过程中的NFC技术
- 客户端登录阿里云mysql数据库_Mysql数据库之数据库术语和客户端登陆
- FZOJβ #113 后缀平衡树
- 【第59篇】MetaFormer实际上是你所需要的视觉
- 索尼M36h怎么刷第三方recovery?
- sql(Mysql)查询出时间数据在显示时加上时区
- 查看JVM的时区
- mongo查询时区转换
- [Linux]查看时区
- 数据库时区查询
- spark时区问题
- Doris时区设置
- mysql查询和更改时区
- 全球时区查询 API数据接口
- SQL 查询当前时间,已经设置时区
- mysql sql查询时区_MySQL查看和修改时区的方法
- Oracle 查看和修改数据库时区
- oracle 查询数据库时区,[原创]数据库时区与操作系统不一致时的解决方法
- influxDB自定义查询时区
- Docker内时区查询和修改方法
- 用马克思主义看待现社会拜金主义价值观
- 我的工具观
- 我的投资、理财、财富观
- 我之我观
- 《态度》:年轻人的成长启迪之书
- Androidnbsp;学习论坛博客及网站推荐(…
- 三星android5 root包,三星 S5360的安卓 2.3.5系统 root成功
- vue上传照片
- android 开发论坛资源URL
- 关于修改虚拟机内存,和开启 硬件加速
k8s跑一个nginx-app体验相关推荐
- Flutter初体验(二)—— 创建第一个Flutter APP
Flutter初体验(二)--- 创建第一个Flutter APP 在第一篇文章 Flutter初体验(一)---Mac 安装配置,学习了配置 Flutter 开发环境,并运行了Demo项目,本篇根据 ...
- 安装Docker,在本机上跑一个‘2048’小游戏(脉冲云在线体验)
安装Docker,在本机上跑一个'2048'小游戏 脉冲云–让软件开发效率提升十倍.在线免费体验 下面的步骤是在本机上运行的,也可以免费在脉冲云官网上部署一个在线的'2048'小游戏体验一下. 1 ...
- iOS动手做一个直播app开发(代码篇)
iOS动手做一个直播app开发(代码篇) ###开篇 好久没写简书,因为好奇的我跑去学习直播了,今天就分享一下我的感慨. 目前为止直播还是比较热点的技术的,简书,git上有几篇阅读量和含金量都不错的文 ...
- 3.10 docker---概念介绍,安装和初识docker,docker的一些基本命令,使用docker部署一个nginx,
一.docker介绍 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后 ...
- 如何用 React Native 创建一个iOS APP?(二)
我们书接上文<如何用 React Native 创建一个iOS APP?>,继续来讲如何用 React Native 创建一个iOS APP.接下来,我们会涉及到很多控件. 1 AppRe ...
- 一个nginx 502问题解决方案
先说环境: 一台windows机器,只跑了nginx,做代理. 一台linux服务器,lnmp环境,运行一个php网站. 在windows的nginx上做了代理,nginx.conf配置文件相关参数并 ...
- 自己怎么开发一个软件app、如何开发一个app系统软件?
自己怎么开发一个软件app.如何开发一个app系统软件? 华盛恒辉开发app软件的办法如下: 1.华盛恒辉首先本人明白需求,懂代码,熟习开发流程. 2.华盛恒辉APP开发后期需求理解产品定位. 3. ...
- k8s部署tomcat及web应用_k8s介绍 k8s搭建一个应用(mysql+tomcat)
k8s介绍 k8s搭建一个应用(mysql+tomcat) kubetnetes介绍 官网 https://kubernetes.io/ Kubernetes也就是k8s Kubernetes是一个开 ...
- 从一个例子开始体验轻量级类隔离容器 SOFAArk | SOFAChannel#11 直播整理
<SOFA:Channnel/>,有趣实用的分布式架构频道. 本文根据 SOFAChannel#11 直播分享整理,主题:从一个例子开始体验轻量级类隔离容器 SOFAArk.回顾视频以及 ...
最新文章
- Haproxy Nginx cluster构建
- 批量获取成员机管理员组用户信息
- “达观杯”文本智能处理挑战赛,季军带你飞
- 从网页(WEB)登录SAP
- 父、子、兄弟节点查找方法
- 看Facebook如何基于物理安全保护数据
- oracle数据库激活控制文件位置,Oracle数据库之Oracle 重建控制文件一例
- 引用使用_引用公文标题时,“”与《》正确使用法则
- 准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC、AUC
- 把3000行代码重构成15行的牛逼操作!!!
- html读写txt文件,JS读写文本文件示例代码
- libtersafe文件下载_tersafe.dll官方版下载
- 【精彩文章】数学家论数学——数学的本质
- 微信小程序个人/企业开放服务类目一览表
- Gartner点将分布式文件存储,浪潮存储缘何一鸣惊人?
- k8s中对pod设置限制只设置了limits
- SSM框架医院信息管理系统-患者医生考勤管理挂号管理-病房管理-科室管理- (idea开发javaweb-php-asp.netC#-j2ee-springboot)
- notepad集成jsonviewer 查看json
- c语言实现灰度图转换为二值图
- 《UEFI内核导读》全集,2023年更新