k8s入门之pod(四)
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(四)的更多相关文章
- k8s入门你至少需要会哪些
body { margin: 0; overflow: auto; font: normal 14px Verdana; background: rgba(255, 255, 255, 1); pad ...
- k8s入门之集群搭建(二)
一.准备三台节点 从上篇文章 k8s入门之基础环境准备(一)安装的Ubuntu虚拟机克隆出三台虚拟机,如图所示 启动这三台虚拟机节点,分别做如下配置 虚拟机名称 IP HostName k8sMast ...
- k8s入门系列之guestbook快速部署
k8s集群以及一些扩展插件已经安装完毕,本篇文章介绍一下如何在k8s集群上快速部署guestbook应用. •实验环境为集群:master(1)+node(4),详细内容参考<k8s入门系列之集 ...
- k8s入门系列之扩展组件(一)DNS安装篇
DNS (domain name system),提供域名解析服务,解决了难于记忆的IP地址问题,以更人性可读可记忆可标识的方式映射对应IP地址. Cluster DNS扩展插件用于支持k8s集群系统 ...
- K8s 入门
中文文档:https://www.kubernetes.org.cn/kubernetes%E8%AE%BE%E8%AE%A1%E6%9E%B6%E6%9E%84 小结大白话 Portainer 挺好 ...
- 反手来个K8S入门到跑路
layout: post title: 反手来个K8S入门到跑路 category: linux date: 2019-06-09 tags: linux k8s 反手来个K8S入门到跑路 前言 放假 ...
- k8s 中的 Pod 细节了解
k8s中Pod的理解 基本概念 k8s 为什么使用 Pod 作为最小的管理单元 如何使用 Pod 1.自主式 Pod 2.控制器管理的 Pod 静态 Pod Pod的生命周期 Pod 如何直接暴露服务 ...
- WCF入门教程(四)通过Host代码方式来承载服务
WCF入门教程(四)通过Host代码方式来承载服务 之前已经讲过WCF对外发布服务的具体方式. WCF入门教程(一)简介 Host承载,可以是web,也可以是控制台程序等等.比WebService有更 ...
- Docker入门教程(四)Docker Registry
Docker入门教程(四)Docker Registry [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第四篇,介绍了Docker Registry,它 ...
随机推荐
- python 命令行参数学习(一)
用了这么久,还没怎么学习python的命令行参数,是在惭愧. 参考文章地址:http://www.cnblogs.com/jianboqi/archive/2013/01/10/2854726.htm ...
- IDEA的git的拉去提交Java day9
赶鸭子上架,没法子. 新的知识点24号继续学习,今天认真熟悉了以下IDEA,的git代码的提交和拉去,不过拉去下来的项目有些打开的问题有点多,还在继续解决中-- git知识明天一并上传博客.
- linux命令管道工作原理与使用方法
一.管道定义 管道是一种两个进程间进行单向通信的机制.因为管道传递数据的单向性,管道又称为半双工管道.管道的这一特点决定了器使用的局限性.管道是Linux支持的最初Unix IPC形式之一,具有以下特 ...
- 组合(n选k问题)
#include "iostream.h" #include "string.h" int a[100]; void dfs(int n,int k) { if ...
- String--int互转
A:int -->String 1.String s1 = "" + 100; 2.String s2 = String.valueof(100); 3.(int -- In ...
- flexible如何实现自动判断dpr?
判断机型, 找出样本机型去适配. 比如iphone以6为样本, 宽度375px, dpr是2
- Oracle问题解决记录
一.前言 oracle这么一个庞大的东西,出点问题真是太常见了.开个博客,用于记录遇到的问题吧. 持续更新. 二.问题列表 归档日志满,引起的问题. 一台服务器,用了很久了,某天,出现了磁盘空间占满的 ...
- Postman请求报错:Error:getaddrinfo ENOENT 50.88.88.88
一.问题来源 今天发布一个新开发的项目到通州现场,内容是开放几个接口给第三方调用,需要现场部署的同事使用postman调用测试一下,现场同事使用postman调用后反馈有如下错误: 二.解决方法 发现 ...
- Oracle :value too large for column "SCHEMA"."TABLE"."COLUMN" (actual: 519, maximum: 500)的解决方案
原因:我是使用 CREATE TABLE XXX AS subquery 进行创建的数据表,主要是将相关的数据聚合在一起,然后通过导出为SQL脚本文件,进行导入到新库中,导致部分INSERT INTO ...
- hook(v16.7测试)?
在无状态组件(如函数式组件)中也能操作state以及其他react特性, 通过useState