k8s(二)pod管理与资源清单

一、Pod管理

pod简介

(1) Pod是可以创建和管理Kubernetes计算的最小可部署单元,一个Pod代表着集群中运行的一个进程,每个pod都有一个唯一的ip。

(2)一个pod类似一个豌豆荚,包含一个或多个容器(通常是docker),多个容器间共享IPC、Network和UTC namespace。

在这里插入图片描述

实验环境:
保证harbor私有仓库启动状态,再启动k8s集群
在这里插入图片描述

1.创建pod节点

查看pod 信息
在这里插入图片描述
查看 pod 的信息(IP,NODE,…)
可以在系统的目录下查看到分配的网络信息(server2,3,4都可以看到)
cd /var/run/flannel/,cat subnet.env

在这里插入图片描述
curl 10.244.2.2 ##集群内部任意节点可以访问Pod,但集群外部无法直接访问

查看 pod 的详细信息
在这里插入图片描述集群给 pod 分配的 ip 是 10.244.2.2 ,该地址在初始化集群时是定义过的;此时运行在 server4 上;每个节点上的网段是不同的;默认情况下 k8s 的 master 不参加调度,网段应该是 0 网段;

在这里插入图片描述

2.删除pod

自主式的 pod ,在删除时便会彻底删除;
在这里插入图片描述

3.创建指定数量的pod

创建2个副本
通过deployment 控制器运行的 pod 在删除之后,控制器会自动再次新建一个 pod ;

在这里插入图片描述
查看pod的详细信息和标签
在这里插入图片描述
kubectl get all
##all指所有已存在的资源,显示运行的Pod,Service,Deployment,和ReplicasSet的关键信息
在这里插入图片描述删除后会重新创建1个
在这里插入图片描述

4.暴露端口

暴露deployment控制器创建的pod的端口信息:
此时 pod 客户端可以通过 service 的名称访问后端的两个 Pod(将指定端口80暴露,使得外部可以访问);
ClusterIP: 默认类型,自动分配一个仅集群内部可以访问的虚拟IP.
在这里插入图片描述
访问生成的ip地址10.109.46.171,整体负载均衡
在这里插入图片描述

查看svc(demo)节点信息.

后端节点Endpoints:必须能看到生成的IP地址才能访问成功

在这里插入图片描述
删除一个后,出现新的
在这里插入图片描述
查看svc(新demo)节点信息,后端节点Endpoints的IP也会发生变化
kubectl get pod -o wide可以看到都是运行在server4上的,查看pod信息,节点信息都是running而且都是ready即表示成功
在这里插入图片描述

5.Pod扩容

pod变成6个节点
在这里插入图片描述

查看svc节点信息,可以看到endpoints的IP地址也变为了6个
在这里插入图片描述
生成的6个pod节点也都是可以访问,实现负载均衡
整体负载均衡

在这里插入图片描述在这里插入图片描述

6.pod缩容

pod变成2个节点

在这里插入图片描述在这里插入图片描述
都在server3上(随机)
在这里插入图片描述

7.更新pod镜像

myapp:v1更新镜像为myapp:v2

kubectl get pod时,出现了terminationg状态,表示正在替换中

在这里插入图片描述
在这里插入图片描述
更新后以前的rs不会消失,为了回滚更新
在这里插入图片描述
查看版本迭代的历史信息,版本有1和2
在这里插入图片描述
访问更新之后的IP
在这里插入图片描述

8.回滚版本

myapp:v2-----v1
在这里插入图片描述
访问IP进行测试
在这里插入图片描述
查看rs信息,可以看到:
版本更新和回退会在这两个rs中变化

在这里插入图片描述

二、资源清单

使用命令行对pod节点进行操作,不高效;资源清单就好比shell脚本一样,按照清单执行命令,相比较命令行更加方便,也易于修改。

回收之前的pod,留下一个名demo的pod
在这里插入图片描述在这里插入图片描述

1.建立自主式 pod 的清单文件

打开一个名demo的pod,利用已经有的deployment生成一个yaml文件(生成模板
在这里插入图片描述
编写自主式 pod 的清单文件,镜像为myapp:v1,pod名为pod-example
在这里插入图片描述
执行清单,并查看pod信息
在这里插入图片描述
在这里插入图片描述
同一个清单文件中,一个 pod,包含myapp容器和busyboxplus容器
在这里插入图片描述
应用pod.yaml文件,并查看信息,pod-example的pod中有两个容器处于READY状态
在这里插入图片描述
查看名为pod-example的pod的详细信息
在这里插入图片描述
在这里插入图片描述
进入busybox终端,-c指定容器 -i打开输入端口 -t打开伪终端
同一pod,多个容器,需要-c指定容器名称
终端内访问localhost
在这里插入图片描述
退出后可继续进入,pod节点会重启
在这里插入图片描述
删除pod节点后在创建,重启次数为0
在这里插入图片描述

在这里插入图片描述
删除pod.yaml节点
在这里插入图片描述

2.镜像拉取设定

设定参数的意思是表示当镜像不存在的时候会拉取;默认值是always
IfNotPresent:本地有则使用本地镜像,不拉取

在这里插入图片描述
查看pod的详细信息
在这里插入图片描述
直接创建,没有拉取动作
在这里插入图片描述

3.设定监听端口

指定容器所在主机需要监听的端口号80,设置了hostPort同一台主机无法启动该容器的相同副本,因为主机的端口号不能相同,只会写到iptables中

在这里插入图片描述
查看pod分配到了server4上,访问server4
在这里插入图片描述
server4上,发现iptables路由策略中写入80,但无端口无80
在这里插入图片描述

4.使用清单锁定IP

锁定为与主机共用ip:
hostNetwork: true
在这里插入图片描述
查看pod的ip, 发现已经变为了server4的IP
在这里插入图片描述
server4上查看到端口80
在这里插入图片描述

5.限制cpu和mem内存

requests为最低限制,limit为最高限制
在这里插入图片描述
查看pod的详细信息
在这里插入图片描述
可以看到有内存和cpu的限制
在这里插入图片描述

6.容器退出不重启–restart=Never

在这里插入图片描述在这里插入图片描述
使用后退出,该节点显示已完成,且不会自动重启,状态处于0/1
在这里插入图片描述
默认是会重启服务的
在这里插入图片描述

7.帮助

kubectl explain pod ##查看pod所有参数,-required-带有required是必须存在的参数
在这里插入图片描述

8.锁定pod节点

在这里插入图片描述

锁定pod节点在server5上(server5不存在)
在这里插入图片描述
执行清单后,发现pod处于pending状态!
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
当调度到的主机名不存在时,此时就会失败
在这里插入图片描述
锁定pod节点在server4上
在这里插入图片描述
查看pode的信息,发现锁定成功,在server4上
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值