pod是k8s项目中的最小编排单位,它是运行中的一组(一个或多个)容器,这些容器共享存储、网络、调度等资源,pod是一个逻辑概念,同一个名称空间下不同pod可以通过ip互相访问。

一、通过命令行方式管理

1.创建

在dev名称空间下创建名称为mynginx的pod,如果不指定-n参数,则默认创建在default名称空间下

kubectl run mynginx --image=nginx -n dev

2.查看dev名称空间下所有pod的简单信息

kubectl get pod -n dev

创建pod需要时间,尤其是节点上没有该镜像时,还需要下载镜像,可以看到pod的Status状态会随着时间而改变,最后变成Running表示pod启动成功

3.查看dev名称空间下所有pod的详细信息

kubectl get pod -n dev -owide --show-labels

结果截图如下

NODE:表示该pod被调度了哪个worker节点上

IP:k8s会为每个pod分配一个ip,集群中的任意一个机器以及任意的应用都能通过此ip来访问这个Pod

在master节点上可以通过curl ip访问pod

# 默认是80端口,所以访问的是pod中的nginx容器
curl 10.244.218.1

4.根据标签检索pod

kubectl get pod -n dev -owide --show-labels -l app=nginx

5.查看pod的描述信息

kubectl describe pod mynginx -n dev

其中Events事件可以查看到pod被创建的详细过程

6.查看Pod的运行日志

kubectl logs mynginx -n dev

7.进入pod容器

kubectl exec -it mynginx /bin/bash -n dev

更改nginx容器的index.html内容

echo "hello,pod" >> /usr/share/nginx/html/index.html

再次访问mynginx

curl 10.244.218.1

可以看到index.html首页内容已经发生了变化

8.监控pod状态命令

使用k8s的-w参数

kubect get pod -n dev -w

使用linux命令

watch -n 1 kubectl get pod -n dev

9.删除pod

kubectl delete pod mynginx -n dev

二、使用yaml管理

1.在pod里部署两个容器

一个pod里面不能部署相同镜像的容器,端口冲突

(1)创建yaml文件

vi pod-nginx-tomcat.yaml

(2)编写pod文件内容,定义两个容器,一个为nginx,一个为tomcat

apiVersion: v1
kind: Pod
metadata:
labels:
web: server
name: web-server
namespace: dev
spec:
containers:
- image: nginx
name: nginx
- image: tomcat:9.0

(3)使用kubectl apply创建pod

kubectl apply -f pod-nginx-tomcat.yaml

(4)自动监控创建过程

kubectl get pod -n dev -w

2.查看pod描述

kubectl describe pod web-server -n dev

3.在节点上访问pod

(1)查看pod的ip

kubectl get pod -n dev -owide

(2)通过此ip访问pod中的nginx容器

curl 10.244.218.2

(3)通过此ip访问pod中的tomcat容器

curl 10.244.218.2:8080

4.进入pod里面访问服务

(1)进入pod里面的nginx容器

kubectl exec web-server --container nginx -it /bin/bash -n dev

(2)在容器内,以下命令均可访问,证明了pod里网络共享

curl localhost
curl localhost:8080
curl 10.244.218.2
curl 10.244.218.2:8080

k8s入门之pod(四)的更多相关文章

  1. k8s入门你至少需要会哪些

    body { margin: 0; overflow: auto; font: normal 14px Verdana; background: rgba(255, 255, 255, 1); pad ...

  2. k8s入门之集群搭建(二)

    一.准备三台节点 从上篇文章 k8s入门之基础环境准备(一)安装的Ubuntu虚拟机克隆出三台虚拟机,如图所示 启动这三台虚拟机节点,分别做如下配置 虚拟机名称 IP HostName k8sMast ...

  3. k8s入门系列之guestbook快速部署

    k8s集群以及一些扩展插件已经安装完毕,本篇文章介绍一下如何在k8s集群上快速部署guestbook应用. •实验环境为集群:master(1)+node(4),详细内容参考<k8s入门系列之集 ...

  4. k8s入门系列之扩展组件(一)DNS安装篇

    DNS (domain name system),提供域名解析服务,解决了难于记忆的IP地址问题,以更人性可读可记忆可标识的方式映射对应IP地址. Cluster DNS扩展插件用于支持k8s集群系统 ...

  5. K8s 入门

    中文文档:https://www.kubernetes.org.cn/kubernetes%E8%AE%BE%E8%AE%A1%E6%9E%B6%E6%9E%84 小结大白话 Portainer 挺好 ...

  6. 反手来个K8S入门到跑路

    layout: post title: 反手来个K8S入门到跑路 category: linux date: 2019-06-09 tags: linux k8s 反手来个K8S入门到跑路 前言 放假 ...

  7. k8s 中的 Pod 细节了解

    k8s中Pod的理解 基本概念 k8s 为什么使用 Pod 作为最小的管理单元 如何使用 Pod 1.自主式 Pod 2.控制器管理的 Pod 静态 Pod Pod的生命周期 Pod 如何直接暴露服务 ...

  8. WCF入门教程(四)通过Host代码方式来承载服务

    WCF入门教程(四)通过Host代码方式来承载服务 之前已经讲过WCF对外发布服务的具体方式. WCF入门教程(一)简介 Host承载,可以是web,也可以是控制台程序等等.比WebService有更 ...

  9. Docker入门教程(四)Docker Registry

    Docker入门教程(四)Docker Registry [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第四篇,介绍了Docker Registry,它 ...

随机推荐

  1. 06分频计数器之LED闪烁1

    一设计功能是:让LED灯每1秒亮一次,再灭一秒,闪烁时间周期为2秒. 二分频的介绍: (一)设计方式:IP核和自己动手写. (二)对于分频的构成:一个是计数器,还有时钟翻转.方法一是计满整个周期,一半 ...

  2. P2P图书馆实践:让知识更好的传播

    人才是每个公司最重要的资产,而人的成长自然就成了最重要的事.苏轼曾经说过:"腹有诗书气自华,代码万行零缺陷",阅读对人成长的影响是巨大的.相信不同的团队都有着自己打造学习氛围.技术 ...

  3. python 元组tuple 增删改查操作

    初始化: data_tuple = () data_tuple1 = (1,) data_tuple2 = tuple() 新增: data_tuple+data_tuple1 (data_tuple ...

  4. 租户的概念和MybatisPlus实现

    租户的概念:https://baijiahao.baidu.com/s?id=1625945681925384464&wfr=spider&for=pc MybatisPlus框架的租 ...

  5. 静态嵌套类(Static Nested Class)和内部类(Inner Class) 的不同?

    Static Nested Class 是被声明为静态(static)的内部类,它可以不依赖于外部类 实例被实例化.而通常的内部类需要在外部类实例化后才能实例化,其语法看起 来挺诡异的,如下所示. / ...

  6. 什么是redis的缓存雪崩与缓存穿透?如何解决?

    一.缓存雪崩 1.1 什么是缓存雪崩? 首先我们先来回答一下我们为什么要用缓存(Redis): 1.提高性能能:缓存查询是纯内存访问,而硬盘是磁盘访问,因此缓存查询速度比数据库查询速度快 2.提高并发 ...

  7. 小程序刷新webview小结

    场景 在小程序其它页面做了操作,数据发生改变,回到webview页面时需要更新webview里面的数据.由于小程序没有提供与webview的实时通信能力,因此刷新页面是个可考虑的做法. 方法一 最常见 ...

  8. 基于React的仿QQ音乐(移动端)

    前言 由于这段时间工作上也是挺忙的,就没有时间去写这个项目,中间一直都是写写停停,进度也是非常慢的.正好前几天都还比较空,就赶紧抓着空闲时间去写这个项目,最后紧赶慢赶地完成了.本项目采用了React的 ...

  9. C#编写一个简易的文件管理器

    编写一个简易的文件管理器,通过本次实验,练习 TreeView.ListView 和SplitContainer 控件的使用,同时熟悉 C#文件系统的操作方法以及 File 类和 Directory类 ...

  10. javascript,如何实现数据绑定

    在三大框架 抢占前端开发技术领域的时代,基本每个框架都是实现了数据绑定, 今天我们来解密一下数据绑定的原理, 原理关乎一个很关键的东西,Object.prototype.__defineSetter和 ...