目录

  • 一、命令终端
    • 创建Pod
    • 查看Pod
    • 访问Pod中容器
    • 进入Pod内部
    • 删除Pod
    • 配置文件yaml创建
  • 二、Dashboard
    • 创建Pod
    • 创建多容器的Pod
    • 进入容器
    • 访问容器应用

一、命令终端

创建Pod

  • 命令格式kubectl run 自定义pod名字 --image=基础镜像
    示例
[root@VM-4-8-centos kubernetes]# kubectl run my-nginx --image=nginx
pod/my-nginx created

查看Pod

  • 简单状态信息
[root@VM-4-8-centos ~]# kubectl get pod -n default
NAME       READY   STATUS    RESTARTS   AGE
my-nginx   1/1     Running   0          15s
  • Pod详细信息
    命令格式kubectl get pod podName -owide
[root@VM-4-8-centos ~]# kubectl get pod my-nginx -owide
NAME       READY   STATUS    RESTARTS   AGE     IP           NODE            NOMINATED NODE   READINESS GATES
my-nginx   1/1     Running   0          2m30s   10.244.0.9   vm-4-8-centos   <none>           <none>
  • 执行过程描述
    命令格式kubectl describe pod podName
[root@VM-4-8-centos ~]# kubectl describe pod my-nginx
Name:         my-nginx
Namespace:    default
Priority:     0
Node:         vm-4-8-centos/10.0.4.8
Start Time:   Sat, 26 Feb 2022 11:25:56 +0800
Labels:       run=my-nginx
Annotations:  <none>
...
Events:Type    Reason     Age    From               Message----    ------     ----   ----               -------Normal  Scheduled  3m41s  default-scheduler  Successfully assigned default/my-nginx to vm-4-8-centosNormal  Pulling    3m41s  kubelet            Pulling image "nginx"Normal  Pulled     3m40s  kubelet            Successfully pulled image "nginx" in 882.15599msNormal  Created    3m40s  kubelet            Created container my-nginxNormal  Started    3m40s  kubelet            Started container my-nginx
  • 日志信息
    命令格式kubectl logs podName
[root@VM-4-8-centos ~]# kubectl logs my-nginx
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
...
2022/02/26 03:25:57 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2022/02/26 03:25:57 [notice] 1#1: start worker processes
2022/02/26 03:25:57 [notice] 1#1: start worker process 31
2022/02/26 03:25:57 [notice] 1#1: start worker process 32

访问Pod中容器

通过kubectl get pod podName -owide可以获取pod的IP地址,那么就可以访问Pod中的容器进程;

[root@VM-4-8-centos ~]# curl http://10.244.0.9
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>

进入Pod内部

  • 命令格式:kubectl exec -it podName -- /bin/bash
[root@VM-4-8-centos ~]# kubectl exec -it my-nginx -- /bin/bash
  • 修改Nginx内容,再次访问
root@my-nginx:/# cd /usr/share/nginx/html/
root@my-nginx:/usr/share/nginx/html# ll
bash: ll: command not found
root@my-nginx:/usr/share/nginx/html# ls
50x.html  index.html
root@my-nginx:/usr/share/nginx/html# echo "welcome my nginx pod" > index.html

删除Pod

  • 命令格式:kubectl delete pod Pod名称 -n 指定命名空间
[root@VM-4-8-centos kubernetes]# kubectl delete pod my-nginx -n default
pod "my-nginx" deleted

配置文件yaml创建

  • 新建vi pod-demo.yaml
# 内容如下
apiVersion: v1
kind: Pod # 资源类型,Pod
metadata: # 元数据name: nginx01 # Pod自定义名称namespace: default # 命名空间labels: # 标签run: nginx01
spec: # 配置信息containers: # 容器组- name: nginx01 # 容器名字image: nginx # 指定基础镜像名字或者仓库连接
  • 应用配置文件
[root@VM-4-8-centos kubernetes]# kubectl apply -f pod-demo.yaml
  • 删除配置文件创建的Pod
    删除配置文件的同时,一起删除Pod
[root@VM-4-8-centos kubernetes]# kubectl delete -f pod-demo.yaml

二、Dashboard

创建Pod

选择在默认namespace=default中新建Pod,控制面板中选择yaml格式文件创建,内容与命令终端创建格式一样;


Pod菜单中可以查看目录

其他的操作小编就不再详细介绍了,管理图形化界面相信大家都可以搞定的~
学习Pod的时候,大家都应该清楚,Pod是一个容器组,其中可以包含多个容器,那么我们接下来创建一个多容器的Pod;

创建多容器的Pod

新增Tomcat容器

apiVersion: v1
kind: Pod # 资源类型,Pod
metadata: # 元数据name: pod-demo1 # Pod自定义名称namespace: default # 命名空间labels: # 标签run: pod-demo1
spec: # 配置信息containers: # 容器组- name: nginx # 容器名字image: nginx # 指定基础镜像名字或者仓库连接- name: tomcatimage: tomcat:8.5.68

上传完之后,可以看到我们的pod已经运行

进入容器

pod目录列表每行最后三个点下拉列表中选择执行进入操作的容器;

访问容器应用


分别访问Nginx和Tomcat;
格式podIP+容器端口

[root@VM-4-8-centos ~]# kubectl get pod pod-demo1 -owide
NAME        READY   STATUS    RESTARTS   AGE     IP            NODE            NOMINATED NODE   READINESS GATES
pod-demo1   2/2     Running   0          9m37s   10.244.0.11   vm-4-8-centos   <none>           <none>
[root@VM-4-8-centos ~]# curl http://10.244.0.11
hello nginx
[root@VM-4-8-centos ~]# curl http://10.244.0.11:8080
<!doctype html><html lang="en"><head><title>HTTP Status 404 – Not Found</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 404 – Not Found</h1><hr class="line" /><p><b>Type</b> Status Report</p><p><b>Description</b> The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.</p><hr class="line" /><h3>Apache Tomcat/8.5.68</h3></body></html>[root@VM-4-8-centos ~]#

【kubernetes系列】Pod篇实战操作相关推荐

  1. 【云原生Kubernetes系列第五篇】kubeadm v1.20 部署K8S 集群架构(人生这道选择题,总会有遗憾)

    系列文章目录 ??即日起,更新云原生相关知识,喜欢的小伙伴可以给我点个三连喔 ??收录至专栏 云原生 ??[云原生Docker系列第一篇]Docker镜像管理 ??[云原生Docker系列第二篇]Do ...

  2. Kubernetes系列之Helm介绍篇

    本次系列使用的所需部署包版本都使用的目前最新的或最新稳定版,安装包地址请到公众号内回复[K8s实战]获取 介绍 Helm 是 Deis 开发的一个用于 Kubernetes 应用的包管理工具,主要用来 ...

  3. 二十、Kubernetes中Pod调度第二篇NodeAffinity详解、实例

    1.概述 在默认情况下,一个Pod在哪个Node节点上运行,是由Scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的.但是在实际使用中,这并不满足的需求,因为很多情况下,我们想控制 ...

  4. kubernetes系列11—PV和PVC详解

    kubernetes系列11-PV和PVC详解 原文:kubernetes系列11-PV和PVC详解 本文收录在容器技术学习系列文章总目录 1.认识PV/PVC/StorageClass 1.1 介绍 ...

  5. Kubernetes系列之理解K8s Service的几种模式

    原文地址:Kubernetes系列之理解K8s Service的几种模式 今天给大家介绍下k8s的service的几种访问模式. 概述 我们知道pod的ip不是固定的,是根据所在宿主机的docker0 ...

  6. 云原生 | 混沌工程工具 ChaosBlade Operator Pod 篇(文末赠书)

    作者:丁源 RadonDB 测试负责人 负责 RadonDB 云数据库.容器化数据库的质量性能测试,迭代验证.对包括云数据库以及容器化数据库性能和高可用方案有深入研究. 继<混沌工程工具 Cha ...

  7. kubernetes系列之ConfigMap使用方式

    作用理解 核心用途就是容器和配置的分离解耦. 如启用一个mysql容器,mysql容器重要的文件有两部分,一部分为存储数据文件,一部分为配置文件my.cnf,存储数据可以用持久存储实现和容器的分离解耦 ...

  8. 从0到1使用Kubernetes系列(四):搭建第一个应用程序

    上一篇文章<从0到1使用Kubernetes系列(三):使用Ansible安装Kubernetes集群>中,我们搭建了一套Kubernetes集群,接下来将在本文中介绍如何使用Kubern ...

  9. kubernetes系列10—存储卷详解

    kubernetes系列10-存储卷详解 1.认识存储卷 1.1 背景 默认情况下容器中的磁盘文件是非持久化的,容器中的磁盘的生命周期是短暂的,这就带来了一系列的问题:第一,当一个容器损坏之后,kub ...

最新文章

  1. 苹果要为app store速度奇慢付出代价
  2. Codeforces Round #421 B
  3. IntentService详解
  4. AI算法的进步超越了摩尔定律!
  5. 33 Java语言基础控制跳转语句标号
  6. 杭电2122Ice_cream’s world III
  7. 随想录(udp经验总结)
  8. 一元三次方程重根判别式_一元四次方程的常规解法
  9. 页面校验请求MmEwMD(转载)
  10. UVA 10803 - Thunder Mountain
  11. mysql存储过程多值_mysql存储过程之返回多个值的方法示例
  12. iTerm2配置(rz/sz命令)
  13. ArcGIS Server Flex API接入MapABC地图
  14. linux 薄膜键盘驱动,一份*级薄膜键盘的简历— HHKB 静电容 键盘
  15. 模拟新浪微博随便看看界面布局
  16. Word文档怎么横向排版?这三种方法简单高效专业
  17. 计算机在小学英语教学中的应用,浅析计算机在英语教学中的应用
  18. 【一周头条盘点】中国软件网(2018.8.20~2018.8.24)
  19. 微服务实战之春云与刀客(四)—— docker swarm 集群实战
  20. 用java语言如何编写圆面积_用java语言编写一个圆面积的求法

热门文章

  1. Java基础知识之Map:compute, computeIfAbsent, computeIfPresent
  2. 算法题存档20190304
  3. SPA (单页应用程序)
  4. 内核怎么帮程序建立连接的
  5. spring mvc 传中文 到controller层乱码的 解决方法
  6. 关于服务网关的几个问题
  7. Netty架构与原理详解
  8. disruptor模拟高速处理大规模订单类业务场景
  9. Linux练习(函数调用复制文件)
  10. Dynamics CRM2011 通过DeveloperToolkit在VS中部署遇到的问题