K8S-核心资源管理方法

一、陈述式管理方法

主要依赖于命令行CLI工具进行管理
增删改查

1.1. 命名空间

#查看命名空间
[root@hdss1-53 ~]# kubectl get namespace

#简写查看命名空间
[root@hdss1-53 ~]# kubectl get ns

#指定命名空间查询,可省略-n default,默认为default
[root@hdss1-53 ~]# kubectl get all -n default   

1.2. 创建删除命名空间

#创建名称空间
[root@hdss1-53 ~]# kubectl create ns app

#查看名称空间
[root@hdss1-53 ~]# kubectl get ns

#删除名称空间app
[root@hdss1-53 ~]# kubectl delete ns app

1.3.管理deployment资源

#使用harbor里的镜像创建pod放在kube-public名称空间 
[root@hdss1-53 ~]# kubectl create deployment nginx-dp --image=harbor.od.com/public/nginx:1.7.9 -n kube-public 

#查看kube-public名称空间
[root@hdss1-53 ~]# kubectl get deploy -n kube-public

#查看pod资源
[root@hdss1-53 ~]# kubectl get pods -n kube-public

#扩展查看pod信息
[root@hdss1-53 ~]# kubectl get pods -n kube-public -o wide

#详细查看名称空间
[root@hdss1-53 ~]# kubectl  describe deployment nginx-dp -n kube-public 

#进入到pod资源,可以跨主机登陆
[root@hdss1-54 ~]# kubectl exec -ti nginx-dp-656b87bf6d-x2zwp /bin/bash -n kube-public

#进入docker容器,不能跨主机
[root@hdss1-54 ~]# docker ps -a|grep nginx

#可简写前四位,进入容器
[root@hdss1-54 ~]# docker exec -ti 6ad bash  

#使用watch查看
[root@hdss1-54 ~]# watch -n 1 'kubectl describe deployment nginx-dp -n kube-public|grep -C 5 Event'

#删除pod资源(重启),kubectl delete pod pod名称 -n 名称空间 ,强制删除[--force--grace-priod=0]
[root@hdss1-54 ~]# kubectl delete pod nginx-dp-6464d8f7d8-bqb2w -n kube-public

1.4管理service资源

kubectl expose deployment pod控制器名称 --port=端口 -n 名称空间
[root@hdss1-54 ~]# kubectl create deployment nginx-dp --image=harbor.od.com/public/nginx:v1.7.9 -n kube-public
[root@hdss1-54 ~]#kubectl get deploy -n kube-public
#查看当前名称空间没有service
[root@hdss7-21 ~]# kubectl get all -n kube-public
#创建service
[root@hdss7-21 ~]# kubectl expose deployment nginx-dp --port=80 -n kube-public
#扩容资源
[root@hdss7-22 ~]# kubectl scale deployment nginx-dp --replicas=2 -n kube-public
deployment.apps/nginx-dp scaled
[root@hdss7-22 ~]# ipvsadm -Ln

所有命令参考与
http://docs.kubernetes.org.cn/683.html

二、声明式管理方法

主要依赖于统一资源配置清单进行管理
2.1查看资源配置清单

#查看pod资源
[root@hdss1-53 ~]# kubectl get pods -n kube-public
NAME                        READY   STATUS    RESTARTS   AGE
nginx-dp-656b87bf6d-4t9nx   1/1     Running   0          31m
nginx-dp-656b87bf6d-x2zwp   1/1     Running   1          2d9h
[root@hdss1-53 ~]# kubectl get pods nginx-dp-656b87bf6d-x2zwp -o yaml -n kube-public
#查看service资源
[root@hdss1-53 ~]# kubectl get service -n kube-public
NAME       TYPE        CLUSTER-IP        EXTERNAL-IP   PORT(S)   AGE
nginx-dp   ClusterIP   192.168.221.177   <none>        80/TCP    40h
[root@hdss1-53 ~]# kubectl get svc nginx-dp -o yaml -n kube-public

2.2解释资源配置清单

[root@hdss1-53 ~]# kubectl explain service.metadata
KIND:     Service
VERSION:  v1

2.3创建资源配置清单

[root@hdss1-53 ~]# vim nginx-ds-svc.yaml 
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx-ds
  name: nginx-ds
  namespace: default
spec:
  ports:
  - port: 8080
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx-ds
  sessionAffinity: None
  type: ClusterIP

2.4应用资源配置清单

  #查看创建的资源清单
  [root@hdss1-53 ~]# kubectl get svc -n default
NAME         TYPE        CLUSTER-IP        EXTERNAL-IP   PORT(S)    AGE
kubernetes   ClusterIP   192.168.0.1       <none>        443/TCP    4d17h
nginx-ds     ClusterIP   192.168.0.237     <none>        8080/TCP   13m
nginx-ds2    ClusterIP   192.168.152.215   <none>        80/TCP     4m38s

[root@hdss1-53 ~]#   kubectl get svc nginx-ds -o yaml

2.5修改资源配置清单
在线修改

#修改端口为port: 8888
[root@hdss1-53 ~]#   kubectl edit svc nginx-ds
  clusterIP: 192.168.231.216
  ports:
  **- port: 8888**
    protocol: TCP
    targetPort: 80

[root@hdss1-53 ~]# kubectl get svc
NAME         TYPE        CLUSTER-IP        EXTERNAL-IP   PORT(S)    AGE
kubernetes   ClusterIP   192.168.0.1       <none>        443/TCP    4d17h
nginx-ds     ClusterIP   192.168.231.216   <none>        8888/TCP   4m38s

离线修改(推荐)

#修改对外暴露的端口
[root@hdss1-53 ~]# kubectl apply -f nginx-ds-svc.yaml
service/nginx-ds created
[root@hdss1-53 ~]# kubectl get svc
NAME         TYPE        CLUSTER-IP        EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   192.168.0.1       <none>        443/TCP   4d17h
nginx-ds     ClusterIP   192.168.231.216   <none>        880/TCP   7s

2.6删除资源配置清单
陈述式删除(推荐)

[root@hdss1-53 ~]# kubectl delete svc nginx-ds
service "nginx-ds" deleted

声明式删除

[root@hdss1-53 ~]# kubectl delete -f nginx-ds-svc.yaml 

三、GUI管理方法

主要依赖于图形操作界面(web页面)进行管理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes(简称K8s)是一个开源的容器编排平台,可以帮助实现容器化应用的自动化部署、扩展和管理。Kubernetes通过以下几个核心概念来实现集群管理: 1. Pod:Pod是Kubernetes中最小的调度和管理单位,它是一个或多个容器的组合。Pod可以共享网络和存储资源,并且在同一个Pod中的容器可以通过localhost相互通信。 2. Node:Node是Kubernetes集群中的一个工作节点,它可以是物理机器或虚拟机。每个Node可以运行多个Pod,并且负责Pod的调度和运行。 3. Deployment:Deployment是用来定义应用的副本数和更新策略的对象。通过Deployment,可以实现应用的自动扩缩容和滚动更新。 4. Service:Service是一组Pod的抽象,可以提供稳定的网络访问地址。Service可以通过标签选择器来选择一组Pod,并将它们暴露给其他应用或用户。 5. Namespace:Namespace是用来隔离和组织集群资源的虚拟环境。通过Namespace,可以将不同的应用和团队隔离开来,避免资源冲突。 6. ConfigMap和Secret:ConfigMap用于存储应用的配置信息,Secret用于存储敏感的密钥和证书。通过ConfigMap和Secret,可以将配置信息和密钥与应用解耦,提高安全性和可维护性。 通过这些核心概念,Kubernetes可以实现自动化部署、自动扩缩容、自动恢复等功能,从而简化了集群管理的复杂度。同时,Kubernetes还提供了丰富的API和命令行工具,可以方便地管理和监控集群的状态和健康状况。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值