docker 3 kubectl 资源管理方法 1

1.陈述式-主要依赖命令行工具  --可以满足90%以上的使用场景,但是缺点也很明显:
命令冗长,复杂,难以记忆
特定场景下,无法实现管理需求
对资源的增、删、查操作比较容易,改比较麻烦,需要patch来使用json串来更改。
1.1 查看名称空间
[root@k8s4 ~]# kubectl  get namespace = kubectl  get ns
NAME              STATUS   AGE
default           Active   5d3h
kube-node-lease   Active   5d3h
kube-public       Active   5d3h
kube-system       Active   5d3h

1.2 查看default名称空间到所有的资源
[root@k8s4 ~]# kubectl get all -n default
NAME                 READY   STATUS    RESTARTS   AGE
pod/nginx-ds-wczmm   1/1     Running   0          4d20h
pod/nginx-ds-xgsss   1/1     Running   0          4d20h
NAME                 TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   192.168.0.1   <none>        443/TCP   5d3h
NAME                      DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
daemonset.apps/nginx-ds   0         0         0       0            0           <none>          4d20h

1.3创建和删除名称空间
kubectl create ns app  创建名为app名称空间
kubectl delete namespace app  删除名为app的名称空间

1.4创建管理Deployment pod控制器 (pod控制器用来保证资源运行始终无限接近与提前设定的值)
kubectl create deployment nginx-dp --image=harbor.od.com/public/nginx:v1.7.9 -n kube-public    #在kub-public命名空间创建了deployment类型pod控制器,pod控制器里面使用的镜像是harbor仓库里面的nginx
kubectl get deployment -n kube-public  #查看
[root@k8s4 ~]# kubectl get pods -n kube-public -o wide  #扩展查看
NAME                        READY   STATUS    RESTARTS   AGE   IP           NODE            NOMINATED NODE   READINESS GATES
nginx-dp-5dfc689474-dqng9   1/1     Running   0          11m   172.7.22.3   k8s4.host.com   <none>           <none>
nginx-dp 为pod控制器的名字
nginx-dp-5dfc689474-dqng9 为pod名字
kubectl describe deployment nginx-dp -n kube-public  #详细查看

1.5进入pod资源
kubectl exec -it nginx-dp-5dfc689474-dqng9 /bin/bash -n kube-public  #也可以用docker exec进入

1.6删除pod资源
kubectl delete pod nginx-dp-5dfc689474-dqng9 -n kube-public #相当与重启 pod会切换到另外的计算节点
pod删除了但是pod控制器没有被删除,pod控制器预期是要有一个pod的,所以pod控制器会帮你在拉起一个pod,要想删除必须删除pod控制器
kubectl delete pod nginx-dp-5dfc689474-dqng9 -n kube-public --force --grace-period=0 强制删除
kubectl delete deployment nginx-dp -n kube-public  #删除deployment pod控制器

1.7 创建/管理service资源
kubectl create deployment nginx-dp --image=harbor.od.com/public/nginx:v1.7.9 -n kube-public
kubectl describe svc nginx-dp -n kube-public #查看 service依赖Labels/Selector 凡是Labels/Selector 等于nginx-dp 又在kube-public空间内,就会匹配,通过标签选择器把pod service绑定
Name:              nginx-dp
Namespace:         kube-public
Labels:            app=nginx-dp
Annotations:       <none>
Selector:          app=nginx-dp
Type:              ClusterIP
IP:                192.168.198.239
Port:              <unset>  80/TCP
TargetPort:        80/TCP
Endpoints:         172.7.22.3:80
Session Affinity:  None
Events:            <none>
kubectl get all -n kube-public
给pod资源创建service资源,上述删除实验,pod资源ip发生了迁移,pod不能稳定的对外服务了,需要引进server概念稳定的提供接入点
kubectl expose deployment nginx-dp --port=80 -n kube-public   #expose 暴露80端口
[root@k8s3 ~]# kubectl get all -n kube-public
NAME                            READY   STATUS    RESTARTS   AGE
pod/nginx-dp-5dfc689474-62f25   1/1     Running   0          9m57s
NAME               TYPE        CLUSTER-IP        EXTERNAL-IP   PORT(S)   AGE
service/nginx-dp   ClusterIP   192.168.198.239   <none>        80/TCP    29s                    #再次查看pod资源,多出了service资源,有ip地址和端口,这个ip是不会发生变化的
测试查看
curl 192.168.198.239
[root@k8s4 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.0.1:443 nq
  -> 10.4.7.21:6443               Masq    1      0          0         
  -> 10.4.7.22:6443               Masq    1      0          0         
TCP  192.168.198.239:80 nq                                #前端地址
  -> 172.7.22.3:80                Masq    1      0          1   #后端地址
扩容,查看nginx-dp变化
kubectl scale deployment nginx-dp --replicas=2 -n kube-public   #扩容
[root@k8s4 ~]# ipvsadm -Ln  #再次查看前端不变
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.0.1:443 nq
  -> 10.4.7.21:6443               Masq    1      0          0         
  -> 10.4.7.22:6443               Masq    1      0          0         
TCP  192.168.198.239:80 nq
  -> 172.7.21.3:80                Masq    1      0          0         
  -> 172.7.22.3:80                Masq    1      0          0

http://docs.kubernetes.org.cn/683.html kubectl命令学习文档

2.声明式-依赖统一资源配置清单(manifest) yaml/json 进行管理
2.1 查看资源配置清单
kubectl get pods nginx-dp-5dfc689474-62f25 -o yaml -n kube-public  #yaml 格式的资源配置清单  = kubectl get service(svc) nginx-dp -o yaml -n kube-public
kubectl explain svc.metadata  #解释资源配置清单

2.2创建资源配置清单
vi nginx-ds-svc.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx-ds
  name: nginx-ds
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx-ds
  sessionAffinity: None
  type: ClusterIP
  
2.3创建和查看
kubectl create -f nginx-ds-svc.yaml 
kubectl get svc -n default

2.4修改资源配置清单
vi nginx-ds-svc.yaml  #修改里面的配置在apply
kubectl apply -f ginx-ds-svc.yaml
修改资源配置清单分为离线和在线。上面的方法是离线
kubectl edit svc nginx-ds -n default   #这个方法是在线修改

2.5删除资源配置清单
kubectl delete svc nginx-ds  陈述式删除
kubectl delete -f nginx-ds-svc.yaml  声明式删除


3.GUI式-主要依赖图形化操作界面(web界面)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值