赞
踩
粗略理解: 一个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
提前在私有仓库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 指定容器
kubectl delete pod nginx
kubectl describe pod demo
kubectl scale deployment --replicas=2 nginx
会优先回收后创建的pod’
将pod看为一个service ,暴露出去,让别人访问,能实现负载均衡
service是一个抽象概念,定义了一个服务的多个pod逻辑合集和访问pod的策略,一般把service称为微服务。
kubectl expose deployment nginx --port=80 --target-port=80
因为myapp的端口也是80,所以无需用target port
此时pod客户端可以通过service的名称访问后端的两个Pod
ClusterIP: 默认类型,自动分配一个仅集群内部可以访问的虚拟IP
当进行拉伸时,会自动出现在svc中
ClusterIP: 默认类型,自动分配一个仅集群内部可以访问的虚拟IP
NodePort: 在ClusterIP基础上为Service在每台机器上绑定一个端口,这样就可以通过 NodeIP:NodePort 来访问该服务
kubectl edit svc nginx
//修改service的type为NodePort
以节点ip+对外端口的方式访问
[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>
[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
kubectl scale --replicas=6 deployment nginx
kubectl scale --replicas=3 deployment nginx
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。