创建pod任务(如果使用控制器建立的话删除时先删除控制器)
# kubectl create deployment myapp --image=nginx 创建 # kubectl get pod 查看 # kubectl delete pod myapp-6d8d776547-4w4ph 删除 # kubectl delete deployment 名称 用控制器管理地pod删除 # kubectl describe pod 描述 # kubectl get pod -n kube-system -o wide 资源配置清单
service是一个抽象概念,定义了一个服务的多个pod逻辑合集和访问pod的策略, 一般把service称为微服务
创建service
# kubectl expose deployment nginx --port=80 --target-port=80 # kubectl describe svc nginx此时pod客户端可以通过service的名称访问后端的两个Pod
ClusterIP: 默认类型,自动分配一个仅集群内部可以访问的虚拟IP
测试:
下载镜像busyboxplus
# kubectl run demo --image=busyboxplus -it 运行busybox去测试 # curl 10.100.109.60 此vip使用 kubectl describe svc nginx 获取为了方便观察我们这里使用myapp来测试进行版本更新以及回滚
上传myapp的镜像到私有仓库,在我们服务端配置好daemo.json
# kubectl set image deployment nginx nginx=myapp:v1 --record 更新将nginx更新为myapp镜像,并且记录 # kubectl rollout history deployment nginx 查看版本历史测试:
# kubectl attach demo -it # curl 10.100.109.60版本更新
版本回滚
# kubectl rollout history deployment nginx 查看历史版本 # kubectl rollout undo deployment nginx --to-revision=6 将版本V2回退到V1以上pod只有在集群内部可以访问,如果集群外部需要访问需要打开NodeNort
# kubectl edit svc nginx 接口type改为NodePort # kubectl expose deployment nginx --port=80 --target-port=80 -- type=NodePort 或者创建server时指定测试:在外部网络访问
# curl 172.25.254.10:32193 # curl 172.25.254.11:32193