不忘初心,
牢记使命。

Docker&K8s---K8s管理资源的三种基本方法

2021-06-28 大聪明 0评论 149 0喜欢

Docker&K8s---K8s管理资源的三种基本方法

陈述式管理方法

主要依赖命令行CLI工具进行管理

http://docs.kubernetes.org.cn

查看相关信息

get

Usage:  kubectl get resource [-o wide|json|yaml] [-n namespace]
Man:    获取资源的相关信息,-n 指定名称空间,-o 指定输出格式
        resource可以是具体资源名称,如pod nginx-xxx;也可以是资源类型,如pod;或者all(仅展示几种核心资源,并不完整)
        -A, --all-namespace 表示显示所有名称空间

命令

kubectl get namespace  # 查看名称空间
kubectl get ns  # 查看名称空间 简写
kubectl get all [-n default]  # 查看deafult名称空间种的所有资源
kubectl get deployment -n app  # 查看app名称空间中的deployment
kubectl get deployment -o wide -n app  # 扩展查看app名称空间中的deployment
kubectl get pods -n app  # 查看pod

describe

Usage: kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | -l label] | TYPE/NAME) [-n namespace]
Man:   描述某个资源信息

命令

kubectl describe deployment -n app  # 详细描述app名称空间中的deployment
kubectl describe svc nginx-dp -n kube-public  # 查看service
Name:              nginx-dp
Namespace:         kube-public
Labels:            app=nginx-dp
Annotations:       <none>
Selector:          app=nginx-dp
Type:              ClusterIP
IP:                192.168.185.100
Port:              <unset>  80/TCP
TargetPort:        80/TCP
Endpoints:         172.17.22.2:80
Session Affinity:  None
Events:            <none>

创建资源

creeate

Uage:   kubectl create -f filename.yaml
        kubectl create resourece [options]
Man:    根据清单文件或者指定的资源参数创建资源

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata: 
    name: nginx-ds
spec:
    template:
      metadata:
        labels:
          app: nginx-ds
      spec:
        containers:
        - name: my-nginx
          image: harbor.od.com/public/nginx:v1.7.9
          ports: 
          - containerPort: 80

命令

# 创建名称空间
kubectl create namespace app  # 创建名称空间app
kubectl create ns app  # 创建名称空间app

# 创建deployment
kubectl create deployment nginx-dp --image=harbor.od.com/public/nginx:v1.7.9 -n app  # 创建deployment 名字叫nginx-dp 镜像harbor的nginx 在app这个名称空间中
kubectl create deployment nginx-dp --image=harbor.od.com/public/nginx:v1.7.9 -n kube-public

# 创建service资源
Usage: Usage:  kubectl expose TYPE NAME [--port=port] [--protocol=TCP|UDP|SCTP] [--target-port=n] [--name=name] [--external-ip=external-ip-of-service] [options]
Man:    TYPE为deployment,NAME为depoly资源名称,port和target-port分别为集群和pod的端口

kubectl expose deployment nginx-dp --port=80 -n kube-public  # 暴露80端口

删除资源

delete

Usage:  kubectl delete ([-f FILENAME] | [-k DIRECTORY] | TYPE [(NAME | -l label | --all)]) [options]
Man:    删除指定资源

命令

kubectl delete ns app  # 删除名称空间app
kubectl delete pod nginx-dp-dasda -n app  # 删除pod资源(重启)
kubectl delete deployment nginx-dp -n app

进入容器

exec

Usage:  kubectl exec (POD | TYPE/NAME) [-c CONTAINER] [flags] -- COMMAND [args...] [options]

命令

kubectl exec POD_NAME COMMAND
kubectl exec -ti nginx-dp-567dasdas89 /bin/bash -n app  # 进入pod资源
# 也可以通过docker exec进去

陈述式资源管理方法小结:

1.kubernetes集群管理集群资源的唯一入口是通过相应的方法调用apiserver的接口

2.kubectl是官方的CLI命令行工具,用于与apiserver进行通信,将用户在命令行输入的命令,组织并转化为 apiserver能识别的信息,进而实现管理k8s各种资源的一种有效途径

3.kubectl的命令大全

kubectl --help

k8s中文文档

声明式管理方法

主要依赖统-资源配置清单( manifest )进行管理

usage:
kubectl create/apply/delete -f /path/to/yaml

# 查看看POD_NAME的资源配置清单
kubectl get pods nginx-dp-5dfc689474-wg52z -o yaml -n kube-public
# 解释
kubectl explain service.metadata
# 创建资源配置清单 service
vi nginx-ds-svc.yaml

apiVersion: extensions/v1beta1
kind: Service
metadata: 
    name: nginx-ds
spec:
    template:
      metadata:
        labels:
          app: nginx-ds
      spec:
        containers:
        - name: my-nginx
          image: harbor.od.com/public/nginx:v1.7.9
          ports: 
          - containerPort: 80

kubectl create -f  nginx-ds.yaml
# 在线修改资源清单
kubectl edit svc nginx-ds
# 离线修改
vi nginx-ds.yaml
修改。。。。
kubectl apply -f nginx-ds.yaml

GUI式管理方法

图像化界面点点点

发表评论 取消回复

电子邮件地址不会被公开。

请输入正确格式的qq邮箱
请输入以http或https开头的URL,格式如:https://libo_sober.top