当前位置:   article > 正文

Kubernetes二、pod管理(创建,删除,查看pod,deployment、创建service(ClusterIP、NodePort)、更新pod镜像,回滚)_k8s deployment addport clusterip

k8s deployment addport clusterip

k8s的最小调度单位是pod

粗略理解: 一个pod是一个容器
Pod是可以创建和管理Kubernetes计算的最小可部署单元一个Pod代表着集群中运行的一个进程(相当于一个容器,之前的docker相当与单机管理,k8s相当于集群管理),每个pod都有一个唯一的ip。

一个pod类似一个豌豆荚(相当于一个资源共享池,一个pod内多个容器共享),包含一个或多个容器(通常是docker),多个容器间共享IPC、Network和UTC namespace。

提前确保所有的状态是running
在这里插入图片描述
报错可能是拉取镜像的时候发生错误,server2和server3免密
通过namespace进行隔离,
长时间pod不是running的状态
直接删掉:kubectl delete pod ** -n namespace
内部的机制会再进行创建

kubectl命令:https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands

1.创建Pod应用(注意版本问题:命令可能不同)

提前在私有仓库server1中已经上传了myapp:v1
kubectl run nginx --image=myapp:v1

kubectl get pod -o wide 获取pod信息,其已经运行节点server3上分配到ip,

默认master端不参与调度,

在这里插入图片描述

上面建立的pod只能在集群内部(集群节点及容器)访问
在这里插入图片描述

将所需镜像在server1中的habor仓库中放好,

kubectl run demo --image=busyboxplus -it ###demo 是pod名字
在这里插入图片描述
和容器内的是同一个地址
在这里插入图片描述

pod相当于环境,真正连接的是容器

kubectl attach demo -c demo -it ##当pod内有多个容器时,-c 指定容器

在这里插入图片描述

2.删除pod

kubectl delete pod nginx

3.查看运行pod的详细信息

kubectl describe pod demo

在这里插入图片描述

4.控制器

在这里插入图片描述

4.1当进行删除操作,控制器通过rs会自动重新创建pod

在这里插入图片描述

4.2进行拉伸,当有多个节点时,会自动进行分配(只有server3,所以看不到效果)

kubectl scale deployment --replicas=2 nginx
在这里插入图片描述

会优先回收后创建的pod’

5.暴露service

将pod看为一个service ,暴露出去,让别人访问,能实现负载均衡
service是一个抽象概念,定义了一个服务的多个pod逻辑合集和访问pod的策略,一般把service称为微服务。

5.1默认类型创建service

kubectl expose deployment nginx --port=80 --target-port=80 因为myapp的端口也是80,所以无需用target port
此时pod客户端可以通过service的名称访问后端的两个Pod
ClusterIP: 默认类型,自动分配一个仅集群内部可以访问的虚拟IP
在这里插入图片描述

在这里插入图片描述
当进行拉伸时,会自动出现在svc中
在这里插入图片描述
在这里插入图片描述

ClusterIP: 默认类型,自动分配一个仅集群内部可以访问的虚拟IP

5.2使用NodePort类型暴露端口,让外部客户端访问Pod

NodePort: 在ClusterIP基础上为Service在每台机器上绑定一个端口,这样就可以通过 NodeIP:NodePort 来访问该服务

kubectl edit svc nginx //修改service的type为NodePort
在这里插入图片描述
在这里插入图片描述

以节点ip+对外端口的方式访问
在这里插入图片描述

6.更新pod镜像

[root@server2 docker]#kubectl set image deployment nginx myapp=myapp:v2
deployment.apps/nginx image updated
[root@server2 docker]# kubectl rollout history deployment nginx ##查看更新记录
deployment.apps/nginx
REVISION CHANGE-CAUSE
1
2

在访问的时候已经变成v2

[root@localhost ~]# curl 172.25.10.2:30288
Hello MyApp | Version: v2 | <a href="hostname.html">Pod Name</a>
  • 1
  • 2

7.回滚

[root@server2 docker]#kubectl rollout undo deployment nginx ###重新回到v1的状态
deployment.apps/nginx rolled back
[root@server2 docker]# kubectl rollout history deployment nginx
deployment.apps/nginx
REVISION CHANGE-CAUSE
2
3

8.扩容,所容(基于控制器)

 kubectl scale --replicas=6 deployment  nginx
 kubectl scale --replicas=3 deployment  nginx
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/162069
推荐阅读
相关标签
  

闽ICP备14008679号