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中,网络是个重点。

image.png

--分割线-


定义一个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体验相关推荐

  1. Flutter初体验(二)—— 创建第一个Flutter APP

    Flutter初体验(二)--- 创建第一个Flutter APP 在第一篇文章 Flutter初体验(一)---Mac 安装配置,学习了配置 Flutter 开发环境,并运行了Demo项目,本篇根据 ...

  2. 安装Docker,在本机上跑一个‘2048’小游戏(脉冲云在线体验)

    安装Docker,在本机上跑一个'2048'小游戏 脉冲云–让软件开发效率提升十倍.在线免费体验   下面的步骤是在本机上运行的,也可以免费在脉冲云官网上部署一个在线的'2048'小游戏体验一下. 1 ...

  3. iOS动手做一个直播app开发(代码篇)

    iOS动手做一个直播app开发(代码篇) ###开篇 好久没写简书,因为好奇的我跑去学习直播了,今天就分享一下我的感慨. 目前为止直播还是比较热点的技术的,简书,git上有几篇阅读量和含金量都不错的文 ...

  4. 3.10 docker---概念介绍,安装和初识docker,docker的一些基本命令,使用docker部署一个nginx,

    一.docker介绍 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后 ...

  5. 如何用 React Native 创建一个iOS APP?(二)

    我们书接上文<如何用 React Native 创建一个iOS APP?>,继续来讲如何用 React Native 创建一个iOS APP.接下来,我们会涉及到很多控件. 1 AppRe ...

  6. 一个nginx 502问题解决方案

    先说环境: 一台windows机器,只跑了nginx,做代理. 一台linux服务器,lnmp环境,运行一个php网站. 在windows的nginx上做了代理,nginx.conf配置文件相关参数并 ...

  7. 自己怎么开发一个软件app、如何开发一个app系统软件?

    自己怎么开发一个软件app.如何开发一个app系统软件? ​华盛恒辉开发app软件的办法如下: 1.华盛恒辉首先本人明白需求,懂代码,熟习开发流程. 2.华盛恒辉APP开发后期需求理解产品定位. 3. ...

  8. k8s部署tomcat及web应用_k8s介绍 k8s搭建一个应用(mysql+tomcat)

    k8s介绍 k8s搭建一个应用(mysql+tomcat) kubetnetes介绍 官网 https://kubernetes.io/ Kubernetes也就是k8s Kubernetes是一个开 ...

  9. 从一个例子开始体验轻量级类隔离容器 SOFAArk | SOFAChannel#11 直播整理

    <SOFA:Channnel/>,有趣实用的分布式架构频道. 本文根据 SOFAChannel#11 直播分享整理,主题:从一个例子开始体验轻量级类隔离容器 SOFAArk.回顾视频以及 ...

最新文章

  1. Haproxy Nginx cluster构建
  2. 批量获取成员机管理员组用户信息
  3. “达观杯”文本智能处理挑战赛,季军带你飞
  4. 从网页(WEB)登录SAP
  5. 父、子、兄弟节点查找方法
  6. 看Facebook如何基于物理安全保护数据
  7. oracle数据库激活控制文件位置,Oracle数据库之Oracle 重建控制文件一例
  8. 引用使用_引用公文标题时,“”与《》正确使用法则
  9. 准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC、AUC
  10. 把3000行代码重构成15行的牛逼操作!!!
  11. html读写txt文件,JS读写文本文件示例代码
  12. libtersafe文件下载_tersafe.dll官方版下载
  13. 【精彩文章】数学家论数学——数学的本质
  14. 微信小程序个人/企业开放服务类目一览表
  15. Gartner点将分布式文件存储,浪潮存储缘何一鸣惊人?
  16. k8s中对pod设置限制只设置了limits
  17. SSM框架医院信息管理系统-患者医生考勤管理挂号管理-病房管理-科室管理- (idea开发javaweb-php-asp.netC#-j2ee-springboot)
  18. notepad集成jsonviewer 查看json
  19. c语言实现灰度图转换为二值图
  20. 《UEFI内核导读》全集,2023年更新

热门文章

  1. 【2021.12.25】ctf逆向中常见加密算法和编码识别
  2. Bootstrap教程简介
  3. 动态高斯模糊 surfaceView View
  4. 项目案例:网上书店数据库设计
  5. 国内物联网平台(7):Ablecloud物联网自助开发和大数据云平台
  6. 4步教你学会使用matlab模糊控制工具箱
  7. 免费制作证件照,这3个在线网站千万别错过
  8. tabindex,role属性
  9. linux下查看本机IP的两种方法
  10. jQuery判断是否为数字