前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【kubernetes系列】Pod篇实战操作

【kubernetes系列】Pod篇实战操作

作者头像
沁溪源
发布2022-05-06 10:04:47
2470
发布2022-05-06 10:04:47
举报
文章被收录于专栏:沁溪源

目录

一、命令终端

创建Pod

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

查看Pod

  • 简单状态信息
代码语言:javascript
复制
[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
代码语言:javascript
复制
[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
代码语言:javascript
复制
[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-centos
  Normal  Pulling    3m41s  kubelet            Pulling image "nginx"
  Normal  Pulled     3m40s  kubelet            Successfully pulled image "nginx" in 882.15599ms
  Normal  Created    3m40s  kubelet            Created container my-nginx
  Normal  Started    3m40s  kubelet            Started container my-nginx
  • 日志信息 命令格式kubectl logs podName
代码语言:javascript
复制
[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中的容器进程;

代码语言:javascript
复制
[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
代码语言:javascript
复制
[root@VM-4-8-centos ~]# kubectl exec -it my-nginx -- /bin/bash
  • 修改Nginx内容,再次访问
代码语言:javascript
复制
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 指定命名空间
代码语言:javascript
复制
[root@VM-4-8-centos kubernetes]# kubectl delete pod my-nginx -n default
pod "my-nginx" deleted

配置文件yaml创建

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

二、Dashboard

创建Pod

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

Pod菜单中可以查看目录

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

创建多容器的Pod

新增Tomcat容器

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

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

进入容器

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

访问容器应用

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

代码语言:javascript
复制
[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 ~]#
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 一、命令终端
    • 创建Pod
      • 查看Pod
        • 访问Pod中容器
          • 进入Pod内部
            • 删除Pod
              • 配置文件yaml创建
              • 二、Dashboard
                • 创建Pod
                  • 创建多容器的Pod
                    • 进入容器
                      • 访问容器应用
                      相关产品与服务
                      容器服务
                      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档