一、pod基本操作
Pod是可以创建和管理Kubernetes计算的最小可部署单元,一个Pod代表着集群中运行的一个进程,每个pod都有一个唯一的ip。一个pod类似一个豌豆荚,包含一个或多个容器(通常是docker),多个容器间共享IPC、Network和UTC namespace。
kubectl常用命令
kubectl run demo --image=myapp:v1 %创建新的pod,叫demo
kubectl get node %查看k8s的所有node节点
kubectl get pods %列出所有运行的Pod信息
kubectl get pods -o wide %列出Pod以及运行Pod节点信息
kubectl describe pod demo %查看demo的详细信息
kubectl get all %查看所有资源信息
kubectl get ns %查询命名空间中的资源
配置环境
把之前的harbor仓库拉进来
server1默认不参加调度
因为有个污点,不调度
把仓库地址加到123节点域名解析中
所有节点都修改
修改完成
结果发现,并不能去harbor仓库下载,需要把证书传给三个机子
测试拉取,速度很快
匿名拉取日志也有
基础操作
运行容器镜像:nginx,创建Pod应用
列出Pod信息
查看demo的详细信息,此pod被分配到的ip如下
详细信息显示直接在server3上拉取成功
可以直接访问到ip
二、部署Deployment(pod 扩容、更新、回滚)
pause:当时布置集群时,产生的
作用:创建Pod根环境
创建一个名为nginx的deployment,–replicas=3,副本数为3
控制器会自动维护Pod数量
删除其中一个Pod,由于–replicas=3,集群会自动创建Pod
service是一个抽象概念,定义了一个服务的多个pod逻辑合集和访问pod的策略,一般把service称为微服务。
创建service: kubectl expose deployment nginx --port=80 --target-port=80;
此时pod客户端可以通过service的名称访问后端的两个Pod,ClusterIP: 默认类型,自动分配一个仅集群内部可以访问的虚拟IP,访问该虚拟ip,可以看到后端负载均衡
kubectl describe svc nginx:查看demo这个服务的虚拟ip和两个后端
扩容
Pod扩容,从3个副本变为6个副本
默认用的随机调度算法
这种方法只适用于clusterIP
在集群中适用
集群外的机子不行
改一下svc类型,外网也可以访问
更新
镜像更新之后,发现之前的副本信息也保存着,但是开启的副本数量是0,这是为了便于回滚
回滚
kubectl rollout history deployment nginx :查看历史版本
kubectl rollout undo deployment nginx --to-revision=1 :回滚版本
查看rs(replicasets信息)信息,说明版本更新和回退会在这两个rs中变化
删除
删除控制器时,pod也被删除 了