kubernetes基础篇 ——Pod管理

官方网站:https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

Pod管理

  • Pod 是可以创建和管理 Kubernetes 计算的最小可部署单元,一个 Pod 代表着集群中运行的一个进程,每个 pod 都有一个唯一的 IP
  • 一个 pod 类似一个豌豆荚,包含一个或多个容器(通常是docker),多个容器间共享 IPC、Network 和 UTC namespace
    在这里插入图片描述
    kubectl命令指南:https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands
    拉取nginx镜像,上传到私有harbor仓库
docker pull hub.c.163.com/library/nginx:latest
docker tag hub.c.163.com/library/nginx  reg.harbor.com/library/nginx
docker push reg.harbor.com/library/nginx

在这里插入图片描述
删除镜像

docker rmi hub.c.163.com/library/nginx

在这里插入图片描述
创建Pod应用

kubectl run nginx --image=nginx --replicas=2 --record

在这里插入图片描述
本来这里是k8s4也会创建pod应用的,但因为replicas参数已经被弃用,所以不会生效,最终只是再k8s4创建pod应用后面我们可以通过资源清单的方式批量部署pod应用。
集群内部任意节点可以访问Pod,但集群外部无法直接访问
删除Pod

kubectl delete pod nginx

在这里插入图片描述

  • service是一个抽象概念,定义了一个服务的多个pod逻辑合集和访问pod的策略,一般把service称为微服务

创建service

kubectl expose pod nginx --port=80 --target-port=80

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

  • 此时pod客户端可以通过service的名称访问后端Pod
  • ClusterIP: 默认类型,自动分配一个仅集群内部可以访问的虚拟IP

使用NodePort类型暴露端口,让外部客户端访问Pod
NodePort: 在ClusterIP基础上为Service在每台机器上绑定一个端口,这样就可以通过 NodeIP:NodePort 来访问该服务

kubectl edit svc nginx         //修改service的type为NodePort

在这里插入图片描述
在这里插入图片描述
上述操作是将其分为两个命令进行设置,合并成一个命令的话为:

kubectl expose deployment nginx --port=80 --target-port=80 --type=NodePort    //也可以在创建service时指定类型

更新pod镜像

kubectl set image deployment nginx nginx=nginx:1.16.0 --record

回滚

kubectl rollout history deployment nginx       ##查看历史版本
kubectl rollout undo deployment nginx --to-revision=1     ##回滚版本
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章