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. 第3 章 802.11 MAC

    一 前言 802.11 规格的关键在于MAC(介质访问控制层),属于数据链路层,它定义了数据帧怎样在介质上进行传输.MAC 位于各种物理层之上,控制数据的传输.不同的物理层可以提供不同的传输速度,不过 ...

  2. 深入浅出SpringBoot

  3. JVM的垃圾回收算法有哪些

    常用的垃圾回收算法有如下四种:标记-清除.复制.标记-整理和分代收集. 标记-清除算法从算法的名称上可以看出,这个算法分为两部分,标记和清除.首先标记出所有需要被回收的对象,然后在标记完成后统一回收掉 ...

  4. 【转】pringMVC+Hibernate+Spring 简单的一个整合实例

    ref:http://langgufu.iteye.com/blog/2088355 SpringMVC又一个漂亮的web框架,他与Struts2并驾齐驱,Struts出世早而占据了一定优势,我在博客 ...

  5. idea-spring-boot打包jar/var

    下面的插件配置的里面需要加上具体的main类 <groupId>org.springframework.boot</groupId> <artifactId>spr ...

  6. Redis Set Type

    集合中的元素个数最多为2的32次方-1个,集合中的元素师没有顺序的. Redis集合的操作命令和对应的api如下: smembers [set] JedisAPI:public Set<Stri ...

  7. Java 中能创建 volatile 数组吗?

    能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不 是整个数组.我的意思是,如果改变引用指向的数组,将会受到 volatile 的保护, 但是如果多个线程同时改变数 ...

  8. C++中类所占的内存大小以及成员函数的存储位置

    类所占内存的大小是由成员变量(静态变量除外)决定的,虚函数指针和虚基类指针也属于数据部分,成员函数是不计算在内的.因为在编译器处理后,成员变量和成员函数是分离的.成员函数还是以一般的函数一样的存在.a ...

  9. Python中查看变量的类型,内存地址,所占字节的大小

    查看变量的类型 #利用内置type()函数 >>> nfc=["Packers","49"] >>> afc=[" ...

  10. Web Storage相关

    访问原文地址 概述 DOM存储的机制是通过存储字符串类型的键/值对,来提供一种安全的存取方式.这个附加功能的目标是提供一个全面的,可以用来创建交互式应用程序的方法(包括那些高级功能,例如可以离线工作一 ...