首页 > 其他分享 >k8s实战入门——Pod

k8s实战入门——Pod

时间:2022-11-07 10:59:50浏览次数:63  
标签:kubectl 入门 -- nginx master Pod k8s pod

Pod

Pod是kubernetes集群进行管理的最小单元,程序要运行必须部署在容器中,而容器必须存在于Pod中。

Pod可以认为是容器的封装,一个Pod中可以存在一个或者多个容器。

image-20200407121501907

kubernetes在集群启动之后,集群中的各个组件也都是以Pod方式运行的。可以通过下面命令查看:

[root@master ~]# kubectl get pod -n kube-system

[root@master ~]# kubectl get pod -n kube-system -o wide

创建并运行

kubernetes没有提供单独运行Pod的命令,都是通过Pod控制器来实现的

# 命令格式: kubectl run (pod控制器名称) [参数]
# --image 指定Pod的镜像
# --port 指定端口
# --namespace 指定namespace

[root@master ~]# kubectl create ns dev
[root@master ~]# kubectl run nginx --image=nginx:latest --port=80 --namespace dev

查看pod信息
# 查看Pod基本信息
[root@master ~]# kubectl get pods -n dev

# 查看Pod的详细信息
[root@master ~]# kubectl describe pod nginx -n dev

 注:通常看最后的Events,用来排错

排错示例

指定一个不存在的镜像版本

[root@master ~]# kubectl run nginx1 --image=nginx:11111 --port=80 --namespace dev

[root@master ~]# kubectl get pods -n dev

[root@master ~]# kubectl describe pod nginx1 -n dev #查看Events显示的信息

访问Pod
# 获取PodIP
[root@master ~]# kubectl get pods -n dev -o wide

#访问Pod
[root@master ~]# curl http://10.244.1.23:80
删除指定Pod

# 删除指定Pod

kubectl delete pod pod的名称 [-n 命名空间]
[root@master ~]# kubectl delete pod nginx -n dev

注:在1.18版本及以后
kubectl run 产生的pod能直接删除
kubectl run nginx --image=nginx:latest --port=80 --namespace dev
kubectl delete pod nginx --namespace dev

通过deployment等用pod控制器产生的pod不能直接删除,会拉起一个新的pod
kubectl create deployment web --image=nginx
kubectl delete deployment web
yaml配置操作

创建一个pod-nginx.yaml,内容如下:

apiVersion: v1
kind: Pod
metadata:
  name: nginx    #这里的名字是pod的名字
  namespace: dev
spec:
  containers:
  - image: nginx:latest
    name: pod
    ports:
    - name: nginx-port
      containerPort: 80
      protocol: TCP
然后就可以执行对应的创建和删除命令了:
创建:kubectl create -f pod-nginx.yaml

删除:kubectl delete -f pod-nginx.yaml

参考

黑马B站k8s课程https://www.bilibili.com/video/BV1Qv41167ck/
https://gitee.com/yooome/golang/blob/main/k8s%E8%AF%A6%E7%BB%86%E6%95%99%E7%A8%8B-%E8%B0%83%E6%95%B4%E7%89%88/k8s%E8%AF%A6%E7%BB%86%E6%95%99%E7%A8%8B.md
https://www.yuque.com/fairy-era/yg511q/xyqxge

 

标签:kubectl,入门,--,nginx,master,Pod,k8s,pod
From: https://www.cnblogs.com/gys001/p/16865122.html

相关文章

  • 系统整理K8S的配置管理实战-建议收藏系列
    目录一、ConfigMap1.1、创建1.1.1、from-file1.1.2、from-env-file1.1.3、from-literal1.1.4、基于yaml文件创建1.2、Pod使用ConfigMap1.2.1、valueFrom1.2.2、envFrom1.2.......
  • pod(九):污点taint 与容忍度tolerations
    目录一.系统环境二.前言三.污点taint3.1污点taint概览3.2给节点添加污点taint四.容忍度tolerations4.1容忍度tolerations概览4.2设置容忍度tolerations一.系统环境......
  • MyBatisPlus快速入门
    MyBatisPlus快速入门需要的基础:MyBatisSpringSpringMVC是什么?MyBatis本来就是简化JDBC操作的!官网:https://mp.baomidou.com/MyBatisPlus,简化MyBatis......
  • pod(八):pod的调度——将 Pod 指派给节点
    目录一.系统环境二.前言三.pod的调度3.1pod的调度概述3.2pod自动调度3.2.1创建3个主机端口为80的pod3.3使用nodeName字段指定pod运行在哪个节点3.4使用节点标签nodeS......
  • Spring Security安全控制之快速入门
    在SpringCloud之服务注册中心搭建EurekaServer服务注册中⼼-池塘里洗澡的鸭子-博客园(cnblogs.com)中,一旦启动了Eureka服务器,就可以直接Eureka服务器管理界面—......
  • java入门提要
    java入门提要1.1java程序运行机制1.1.1高级语言的运行机制按程序的执行方式分类,可分为编译型语言和解释型语言。其中java语言既不是纯粹的编译型语言,也不是纯粹的解释......
  • Java学习笔记2-入门
    java入门java三大版本JDK、JRE、JVM安装开发环境HelloWorld新建文件夹存放代码新建Java文件文件后缀为.javaHello.java【注意】系统可能没有现实文件后缀......
  • k8s实战入门——Namespace
    NamespaceNamespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。默认情况下,kubernetes集群中的所有的Pod都是......
  • 【Python零基础入门篇 · 28】:os模块的使用
    os模块os模块中的命令命令作用os.getcwd()获取当前工作目录,即当前程序文件所在的文件夹os.chdir(path)改变当前目录,需传递新的路径os.listdir(path)返......
  • 【Python零基础入门篇 · 28】:os模块的使用
    os模块os模块中的命令命令作用os.getcwd()获取当前工作目录,即当前程序文件所在的文件夹os.chdir(path)改变当前目录,需传递新的路径os.listdir(path)返......