Kubernetes调度单位Pod

Kubernetes调度单位Pod

1 Pod简介

alt
alt

不直接操作容器container。

一个 pod 可包含一或多个容器(container),它们共享一个 namespace(用户,网络,存储等),其中进程之间通过 localhost 本地通信,就相当于我们在本地起两个进程。

alt

2 创建 Pod

2.1 创建yml

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80

2.2 按yaml创建

$ kubectl create -f pod_nginx.ymlpod/nginx created

3 查看 Pod

alt
$ kubectl get pods
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          5s

第一次运行状态字段为 pull,因为要先拉取 nginx 的 image,ready:

$ kubectl get pods
NAME                                          READY   STATUS      RESTARTS   AGE
nginx     0/1     ImagePullBackOff     0          57s

查看 docker 面板,已成功拉取下来 nginx 镜像,再次查看:

alt

ready 为 1,说明已启动:

$ kubectl get pods
NAME                                          READY   STATUS      RESTARTS   AGE
nginx     1/1     Running     0          5m4s

pod 里面现在运行了一个 nginx 的 container。

3.1 查看详情

$ kubectl get pods -o wide
NAME    READY   STATUS    RESTARTS   AGE   IP           NODE       NOMINATED NODE   READINESS GATES
nginx   1/1     Running   0          82s   10.244.0.4(容器的地址)   minikube(在minikube的节点上)   <none>           <none>

3.2 进入容器

如查看其imageid

Linux

因为minikube安装的 k8s 单节点:

$ minikube ssh
Last login: Wed May 10 15:23:19 2023 from 192.168.49.1
docker@minikube:~$ docker ps
CONTAINER ID   IMAGE                       COMMAND                  CREATED          STATUS          PORTS     NAMES
48f7294a924d   nginx                       "/docker-entrypoint.…"   4 minutes ago    Up 4 minutes              k8s_nginx_nginx_default_6cfb9180-9961-46f3-9298-c53d2f40cb1b_0

注意名为“k8s_nginx_nginx_default_6cfb9180”的容器,其 container id=48f7294a924d,进入它:

docker@minikube:~$ docker exec -it 48f7294a924d sh
# exit
docker@minikube:~$ 

先检查网络:

$ docker network ls
NETWORK ID     NAME                          DRIVER    SCOPE
64ad1eca60f7   bridge                        bridge    local
hzirct52ilxb   demo                          overlay   swarm
9d1d55a25a87   docker_gwbridge               bridge    local
4689aefb8f9b   docker_my-bridge              bridge    local
8f8808195e46   examplevotingapp_back-tier    bridge    local
d9026565f4d5   examplevotingapp_front-tier   bridge    local
a18dcc0c886d   flaskredis_default            bridge    local
f2f555bed377   host                          host      local
muao6in9raiq   ingress                       overlay   swarm
103c61be6a54   minikube                      bridge    local
d02380dd3da4   none                          null      local

$ docker network  inspect bridge
...

进入容器:

$ kubectl exec -it nginx-1 -- sh
# ls
bin   dev                  docker-entrypoint.sh  home  lib64  mnt  proc  run   srv  tmp  var
boot  docker-entrypoint.d  etc                   lib   media  opt  root  sbin  sys  usr

若有两个 Nginx,默认进入第一个,-c 选项可指定进入哪一个。

Mac
alt

直接点击 cli 工具进入:

alt

须通过 dockercli 才能访问里面的 nginx:

alt

无法在本地命令行直接通信:

# 本地 PC 执行
$  curl 100.65.143.216:80
curl: (28) Failed to connect to 100.65.143.216 port 80 after 75813 ms: Couldn't connect to server
$ ping 100.65.143.216
PING 100.65.143.216 (100.65.143.216): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1

3.3 本地PC通信

咋才能映射一个可访问ip,本地也能与 nginx 通信?

本地 PC:

# 建立本地与Pod之间的连接: 将本地机器的8086端口与Pod nginx的80端口连接起来
# 实现远程访问: 通过访问本地的8086端口,就可以访问到Pod nginx的80端口上运行的服务
$ pod-basic kubectl port-forward nginx 8086:80

Forwarding from 127.0.0.1:8086 -> 80
Forwarding from [::1]:8086 -> 80
Handling connection for 8086
Handling connection for 8086
**Forwarding from ...:** 表示正在将本地端口转发到Pod端口。

**127.0.0.1:** 本地回环地址,表示本地机器。

**[::1]:** IPv6的回环地址,也表示本地机器。

**Handling connection:** 表示正在处理连接。
应用场景
  • 调试Pod中的服务: 在开发过程中,可以通过端口转发来方便地调试Pod中运行的服务
  • 访问Pod内部的Web服务: 如果Pod中运行了一个Web服务,可以通过端口转发来从本地访问这个服务
alt

但这样如果把该命令停止,就无法访问。

4 删除 pod

4.1 若已存在

删除失败:

$ kubectl create -f pod_nginx.yml
Error from server (AlreadyExists): error when creating "pod_nginx.yml": pods "nginx" already exists

4.2 就想删除

$ kubectl delete -f pod_nginx.yml
pod "nginx" deleted
$ kubectl get pods
No resources found in default namespace.

获取更多干货内容,记得关注我哦。

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/882571.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python3爬虫教程-HTTP基本原理

HTTP基本原理 1&#xff0c;URL组成部分详解2&#xff0c;HTTP和HTTPS3&#xff0c;HTTP请求过程4&#xff0c;请求&#xff08;Request&#xff09;请求方法&#xff08;Request Method&#xff09;请求的网址&#xff08;Request URL&#xff09;请求头&#xff08;Request H…

简历技能面试问答

变成语言和开发工具 C新特性 自动类型推导 (auto)&#xff1a; 自动推导变量的类型&#xff0c;减少显式类型声明的繁琐 范围 for 循环&#xff1a; 用于遍历容器或数组&#xff0c;简化代码。 nullptr&#xff1a; nullptr 取代 NULL&#xff0c;表示空指针&#xff0c;类…

MCU自动测量单元采集振弦式应变计测值的过程

振弦式应变计是一种广泛应用于土木工程、地质勘探等领域的高精度传感器&#xff0c;用于测量结构的应变变化。近年来&#xff0c;随着微控制器单元(MCU)的发展&#xff0c;自动化测量技术得到了极大的提升&#xff0c;使得振弦式应变计的测值采集更加高效和精确。本文将详细介绍…

Linux中使用cp命令的 -f 选项,但还是提醒覆盖的问题

问题&#xff1a; linux 在执行cp的命令的时候&#xff0c;就算是执行 cp -f 也还是会提醒是否要进行替换。 问题原因&#xff1a; 查看别名&#xff0c;alias命令&#xff0c;看到cp的别名为cp -i&#xff0c;那就是说cp本身就是自带覆盖提醒&#xff0c;就算我们加上-f 的…

频率增强通道注意力机制(FECAM)学习总结

本文提出了一种新的频率增强通道注意力机制&#xff08;FECAM&#xff09;&#xff0c;旨在解决时间序列预测中傅里叶变换因吉布斯现象导致的高频噪声问题。FECAM基于离散余弦变换&#xff0c;能自适应地模拟信道间的频率依赖性&#xff0c;有效避免预测误差。实验显示&#xf…

博睿谷IT认证-订阅试学习

在这个信息爆炸的时代&#xff0c;拥有一张IT认证证书&#xff0c;就像拿到了职场晋升的通行证。博睿谷&#xff0c;作为IT认证培训的佼佼者&#xff0c;帮你轻松拿下华为、Oracle等热门认证。下面&#xff0c;让我们一起看看博睿谷如何助你一臂之力。 学习时间&#xff0c;你说…

巨潮股票爬虫逆向

目标网站 aHR0cDovL3dlYmFwaS5jbmluZm8uY29tLmNuLyMvSVBPTGlzdD9tYXJrZXQ9c3o 一、抓包分析 请求头参数加密 二、逆向分析 下xhr断点 参数生成位置 发现是AES加密&#xff0c;不过是混淆的&#xff0c;但并不影响咱们扣代码 文章仅提供技术交流学习&#xff0c;不可对目标服…

脱离枯燥的CRUD,灵活使用Mybatis,根据mybatis动态的xml片段和接口规范动态生成代理类,轻松应付简单业务场景。

需求 需求是这样的&#xff0c;我们有一个数据服务平台的产品&#xff0c;用户先将数据源信息保存到平台上&#xff0c;一个数据源可以提供多个接口服务&#xff0c;而每个接口服务在数据库中存一个具有mybatis语法的sql片段。这样的话&#xff0c;对于一些简单的业务只需要编…

Linux 文件权限详解与管理

文章目录 前言一、文件权限概述1. 权限表示格式2. 权限组合值 二、查看文件权限三、修改文件所有者与所属组1. 使用 chown 修改文件所有者2. 使用 chgrp 修改文件所属组3. 添加所有者 四、修改文件权限1. 符号方式2. 八进制方式3. 实际修改 总结 前言 在 Linux 系统中&#xf…

香港科技大学广州|金融科技学域博士招生宣讲会——武汉大学、华中科技大学

&#x1f514;&#x1f514;&#x1f514;明日宣讲&#x1f514;&#x1f514;&#x1f514; &#x1f490;香港科技大学广州&#xff5c;金融科技学域博士招生宣讲会 &#x1f4cd;武汉大学专场 &#x1f559;时间&#xff1a;2024年9月24日&#xff08;星期二&#xff09;1…

Java项目实战II基于Java+Spring Boot+MySQL的洗衣店订单管理系统(开发文档+源码+数据库)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者 一、前言 随着生活节奏的加快&#xff0c;现代人对便捷、高效服务的需求日益增长&#xff0c;洗衣店作为日常生…

11 - TCPClient实验

在上一个章节的UDP通信测试中&#xff0c;尽管通信的实现过程相对简洁&#xff0c;但出现了通信数据丢包的问题。因此&#xff0c;本章节将基于之前建立的WIFI网络连接&#xff0c;构建一个基础的TCPClient连接机制。我们利用网络调试助手工具来发送数据&#xff0c;测试网络通…

【图虫创意-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…

力扣 困难 154.寻找旋转排序数组中的最小值 II

文章目录 题目介绍题解 题目介绍 题解 题源&#xff1a; 153.寻找旋转排序数组中的最小值 在此基础上&#xff0c;进行二分之前&#xff0c;单独处理一下左指针和最后一个数相同的情况就好了。 class Solution {public int findMin(int[] nums) {int left 0, right nums.le…

conda 虚拟环境安装GDAL

一. 背景 换了新电脑&#xff0c;要重新安装GDAL。从前是下了GDAL的.wheel文件用pip安装&#xff0c;但平时下轮子的网站现在都打不开&#xff0c;比如https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal&#xff0c;不晓得为什么。 后面看了这篇教程解决了问题&#xff08;h…

Codeforces Round 973 (Div. 2) - D题

传送门&#xff1a;Problem - D - Codeforces 题目大意&#xff1a; 思路&#xff1a; 尽量要 最大值变小&#xff0c;最小值变大 即求 最大值的最小 和 最小值的最大 -> 二分答案 AC代码&#xff1a; 代码有注释 #include<bits/stdc.h> using namespace std; #…

C++模拟实现list:list、list类的初始化和尾插、list的迭代器的基本实现、list的完整实现、测试、整个list类等的介绍

文章目录 前言一、list二、list类的初始化和尾插三、list的迭代器的基本实现四、list的完整实现五、测试六、整个list类总结 前言 C模拟实现list&#xff1a;list、list类的初始化和尾插、list的迭代器的基本实现、list的完整实现、测试、整个list类等的介绍 一、list list本…

计算机网络34——Windows内存管理

1、计算机体系结构 2、内存管理 分为连续分配管理和非连续分配管理 在块内存在的未使用空间叫内部碎片&#xff0c;在块外存在的未使用空间叫外部碎片 固定分区分配可能出现内部碎片&#xff0c;动态分区分配可能出现外部碎片 3、逻辑地址和实际地址的互相转换 4、缺页中断 …

k8s中,pod生命周期,初始化容器,容器探针,事件处理函数,理解其设计思路及作用

k8s中&#xff0c;为什么要设计pod 平台直接管理容器不是挺好的吗 为什么要以pod为单位进行管理&#xff0c; 然后把容器放在pod里面 那么有pod和没pod的区别是什么 也就是pod提供了什么作用 这个可以考虑从pod生命周期管理的角度去思考 如图&#xff0c;pod主容器在运行…

JAVA并发编程系列(10)Condition条件队列-并发协作者

一线大厂面试真题&#xff0c;模拟消费者-生产者场景。 同样今天的分享&#xff0c;我们不纸上谈兵&#xff0c;也不空谈八股文。以实际面经、工作实战经验进行开题&#xff0c;然后再剖析核心源码原理。 按常见面经要求&#xff0c;生产者生产完指定数量产品后&#xff0c;才能…