第三章 kubectl管理命令概要

时间:2020-03-02 18:39:04   收藏:0   阅读:101

  一. kubectl管理命令概要

  二. kubectl工具管理资源生命周期

  k8s创建资源会自动调用后端node,部署是使用镜像进行部署

  1,创建

#指定名称为nginx 副本数为3 使用镜像为nginx:1.14 端口是80
kubectl run nginx --replicas=3 --image=nginx:1.14 --port=80

   查看创建的pod,正在创建3个副本容器

# kubectl get pod
NAME                     READY   STATUS              RESTARTS   AGE
nginx-7bc87ddb4d-47lrr   0/1     ContainerCreating   0          55s
nginx-7bc87ddb4d-4q9nr   0/1     ContainerCreating   0          55s
nginx-7bc87ddb4d-sz8hl   0/1     ContainerCreating   0          55s

   创建成功后状态为running

# kubectl get pod
NAME                     READY   STATUS    RESTARTS   AGE
nginx-7bc87ddb4d-47lrr   1/1     Running   0          6m
nginx-7bc87ddb4d-4q9nr   1/1     Running   0          6m
nginx-7bc87ddb4d-sz8hl   1/1     Running   0          6m

   实际创建了一个包含三个副本的deployment

# kubectl get deploy
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nginx   3/3     3            3           6m49s

   2,发布

  创建好的应用需要创建service暴露应用

#创建一个service
#deployment nginx 该service对应的deployment名称是nginx
#--port=80 k8s中服务之间访问的端口
#--type=NodePort发布类型是NodePort即外部可以访问的端口,会随机生成一个3000以上的端口
#--target-port容器的端口(最根本的端口人口),与制作容器时暴露的端口一致,例如docker.io官方的nginx暴露是80端口
#--name指定service的的名称
kubectl expose deployment nginx --port=80 --type=NodePort --target-port=80 --name=nginx-service

   查看,对外暴露了端口为30232

# kubectl get service
NAME            TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
kubernetes      ClusterIP   10.10.10.1    <none>        443/TCP        3d4h
nginx-service   NodePort    10.10.10.48   <none>        80:30232/TCP   9m8s

   访问 任意node的ip加对应的端口

技术分享图片

 

   查看nginx日志

kubectl logs nginx-7bc87ddb4d-sz8hl

   如果查看日志出现错误提示

Error from server (Forbidden): Forbidden (user=system:anonymous, verb=get, resource=nodes, subresource=proxy) ( pods/log nginx-7bc87ddb4d-sz8hl)

   解决办法

  绑定一个cluster-admin的权限

kubectl create clusterrolebinding system:anonymous   --clusterrole=cluster-admin   --user=system:anonymous

   3,更新项目

  项目已经部署需要更新

kubectl set image deployment/nginx nginx=nginx:1.15

   会下载镜像滚动更新

  更新完毕查看nginx版本变成1.15了

kubectl describe pod nginx-6f7d58d4cc-9bj74

 技术分享图片

 

   4,回滚

  查看发布过的版本

# kubectl rollout history deployment/nginx
deployment.extensions/nginx 
REVISION  CHANGE-CAUSE
1         <none>
2         <none>

   回滚到上一个版本

 kubectl rollout undo deployment/nginx

   指定版本回滚

技术分享图片

 

   5,删除

  项目下线删除

#删除deployment
kubectl delete deployment/nginx
#删除service
kubectl delete svc/nginx-service

   

  三. kubectl工具远程连接集群

原文:https://www.cnblogs.com/minseo/p/12397159.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!