美文网首页
Kubernetes学习之pod

Kubernetes学习之pod

作者: david161 | 来源:发表于2022-03-09 08:38 被阅读0次

Pod简介

Pod是kubernetes集群能够调度的最小单元。Pod是容器的封装 。
在Kubernetes集群中,Pod是所有业务类型的基础,也是K8S管理的最小单位级,它是一个或多个容器的组合。这些容器共享存储、网络和命名空间,以及如何运行的规范。在Pod中,所有容器都被同一安排和调度,并运行在共享的上下文中。对于具体应用而言,Pod是它们的逻辑主机,Pod包含业务相关的多个应用容器。

Pod有两个必须知道的特点

网络:每一个Pod都会被指派一个唯一的Ip地址,在Pod中的每一个容器共享网络命名空间,包括Ip地址和网络端口。在同一个Pod中的容器可以和localhost进行互相通信。当Pod中的容器需要与Pod外的实体进行通信时,则需要通过端口等共享的网络资源。
存储:Pod能够被指定共享存储卷的集合,在Pod中所有的容器能够访问共享存储卷,允许这些容器共享数据。存储卷也允许在一个Pod持久化数据,以防止其中的容器需要被重启。

Pod的工作方式

K8s一般不直接创建Pod。 而是通过控制器和模版配置来管理和调度:Pod模板
Pod重启:在Pod中的容器可能会由于异常等原因导致其终止退出,Kubernetes提供了重启策略以重启容器。重启策略对同一个Pod的所有容器起作用,容器的重启由Node上的kubelet执行。Pod支持三种重启策略,在配置文件中通过restartPolicy字段设置重启策略:

  1. Always:只要退出就会重启。
  2. OnFailure:只有在失败退出(exit code不等于0)时,才会重启。
  3. Never:只要退出,就不再重启
    注意,这里的重启是指在Pod的宿主Node上进行本地重启,而不是调度到其它Node上。
    资源限制
    Kubernetes通过cgroups限制容器的CPU和内存等计算资源,包括requests(请求,调度器保证调度到资源充足的Node上)和limits(上限)等。

查看Pod

查看default命名空间下的pods 
kubectl get pods 
查看kube-system命名空间下的pods 
kubectl get pods -n kube-system 
查看所有命名空间下的pods 
kubectl get pod --all-namespaces 
kubectl get pod -A

创建Pod

下载镜像
K8S集群的每一个节点都需要下载镜像:选择不同的基础镜像,下载镜像的大小也不同。 
docker pull tomcat:9.0.20-jre8-alpine 108MB 
docker pull tomcat:9.0.37-jdk8-openjdk-slim 305MB 
docker pull tomcat:9.0.37-jdk8 531MB 

同学们可以自行下载后进行备份。 
docker save -o tomcat9.tar tomcat:9.0.20-jre8-alpine 
docker load -i tomcat9.tar
运行pod
在default命名空间中创建一个pod副本的deployment 

kubectl run tomcat9-test --image=tomcat:9.0.20-jre8-alpine --port=8080 

kubectl get pod 
kubectl get pod -o wide 
使用pod的IP访问容器 
crul ***:8080

扩容

将副本扩容至3个 
kubectl scale --replicas=3 deployment/tomcat9-test 

kubectl get deployment 
kubectl get deployment -o wide 
使用deployment的IP访问pod

创建服务

kubectl expose deployment tomcat9-test --name=tomcat9-svc --port=8888 -- 
target-port=8080 --protocol=TCP --type=NodePort 
kubectl get svc 
kubectl get svc -o wide 
访问服务端口 
curl 10.105.225.0:8888 
访问集群外端口 
http://192.168.198.120:30217
1.练习 
pod deployment 扩容 service 案例 

2.自行查找一些资料:k8s集群 NodePort默认的端口号范围。。。

3.扩展技能:如何修改k8s集群NodePort默认的端口号范围

资源缩写汇总

image.png

相关文章

网友评论

      本文标题:Kubernetes学习之pod

      本文链接:https://www.haomeiwen.com/subject/tfsnrrtx.html