kubernetes 使用&常用命令

一、集群信息搜集

kubectl get [po/no/svc/rc/deploy/ns]
可选参数
-n [ns名称]
-o [wide/yaml]

#在master 查看 node状态
[root@k8s-master ~]# kubectl get nodes
NAME         STATUS   ROLES    AGE   VERSION
k8s-master   Ready    master   24h   v1.16.0
k8s-node1    Ready    <none>   24h   v1.16.0
k8s-node2    Ready    <none>   24h   v1.16.0

[root@k8s-master ~]# kubectl get no
NAME         STATUS   ROLES    AGE   VERSION
k8s-master   Ready    master   24h   v1.16.0
k8s-node1    Ready    <none>   24h   v1.16.0
k8s-node2    Ready    <none>   24h   v1.16.0

#删除节点:无效且显示的也可以删除
[root@k8s-master ~]# kubectl delete node 192.168.245.252
node "192.168.245.252" deleted

#使用 kubectl describe 命令,查看一个 API 对象的细节(信息很多截取部分)
[root@k8s-master ~]# kubectl describe node k8s-node1
Name:               k8s-node1
Roles:              <none>
...
Addresses:
  InternalIP:  192.168.1.22
  Hostname:    k8s-node1
...
Events:
...
...
注意:在 Kubernetes 执行的过程中,对 API 对象的所有重要操作,都会被记录在这个对象的 Events 里,并且显示在 kubectl describe 指令返回的结果中。

#查看集群信息
[root@k8s-master ~]# kubectl cluster-info
Kubernetes master is running at https://192.168.1.18:6443
KubeDNS is running at https://192.168.1.18:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

#查看service的信息
[root@k8s-master ~]# kubectl get service
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.1.0.1     <none>        443/TCP        24h
nginx        NodePort    10.1.60.49   <none>        80:31407/TCP   24h

[root@k8s-master ~]# kubectl get svc
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.1.0.1     <none>        443/TCP        24h
nginx        NodePort    10.1.60.49   <none>        80:31407/TCP   24h

#查看所有名称空间内的资源
[root@k8s-master ~]# kubectl get pods --all-namespaces
NAMESPACE     NAME                                    READY   STATUS    RESTARTS   AGE
default       nginx-54c66f4bdc-4sp2p                  1/1     Running   1          24h
kube-system   coredns-58cc8c89f4-gssl8                1/1     Running   0          24h
kube-system   coredns-58cc8c89f4-hvvql                1/1     Running   0          24h
kube-system   etcd-k8s-master                         1/1     Running   0          24h
...
...

#同时查看多种资源信息
[root@k8s-master ~]# kubectl get pod,svc -n kube-system
NAME                                        READY   STATUS    RESTARTS   AGE
pod/coredns-58cc8c89f4-gssl8                1/1     Running   0          24h
pod/coredns-58cc8c89f4-hvvql                1/1     Running   0          24h
pod/etcd-k8s-master                         1/1     Running   0          24h
...
...
NAME                           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                  AGE
service/kube-dns               ClusterIP   10.1.0.10      <none>        53/UDP,53/TCP,9153/TCP   24h
service/kubernetes-dashboard   NodePort    10.1.177.151   <none>        443:30001/TCP            23h

二、常用命令

1. 查看资源信息

Nodes
# kubectl get no
# kubectl get no -o wide
# kubectl describe no
# kubectl get no -o yaml
# kubectl get node --selector=[label_name]
# kubectl get nodes -o jsonpath=' {.items[*].status.addresses [?(@.type=="ExternalIP")].address}'
# kubectl top node [node_name]
Pods
# kubectl get po -o wide
# kubectl describe po
# kubectl get po
# kubectl get po --show-labels
# kubectl get po -l app=nginx
# kubectl get po -o yaml
# kubectl get pod [pod_name] - o yaml --export
# kubect l get pod [ pod_name] - o yaml --export > nameoffile.yaml
# kubectl get pods -- field-selector status.phase=Running
Namespaces
# kubectl get ns
# kubectl get ns - o yaml
# kubectl describe ns
Deployments
# kubectl get deploy
# kubectl describe deploy
# kubectl get deploy - o wide
# kubectl get deploy - o yaml
Services
# kubectl get svc
# kubectl describe svc
# kubectl get svc - o wide
# kubectl get svc - o yaml
# kubectl get svc --show-labels
DaemonSets
# kubectl get ds
# kubectl get ds --all-namespaces
# kubectl describe ds [daemonset_name] - n [namespce_name]
# kubectl get ds [ds_name] -n [ns_name] -o yaml
Events
# kubectl get events
# kubectl get events -n kube-system
# kubectl get events -w
logs
# kubectl logs [pod_name]
# kubectl logs --since=1h [pod_name]
# kubectl logs --tail =20 [pod_name]
# kubectl logs -f -c [container_name] [pod_name]
# kubectl logs [pod_name] > pod.log
Service Accounts
# kubectl get sa
# kubectl get sa -o yaml
# kubectl get serviceaccounts default -o yaml >./sa.yaml
# kubectl replace serviceaccount default -f ./sa.yaml
ReplicaSets
# kubectl get rs
# kubectl describe rs
# kubectl get rs -o wide
# kubectl get rs -o yaml
Roles
# kubectl get roles --all -namespaces
# kubectl get roles --all -namespaces -o yaml
Secrets
# kubectl get secrets
# kubectl get secrets --all -namespaces
# kubectl get secrets -o yaml
ConfigMaps
# kubectl get cm
# kubectl get cm --all-namespaces
# kubectl get cm --all-namespaces -o yaml
Ingress
# kubectl get ing
# kubectl get ing --all-namespaces
PersistentVolume
# kubectl get pv
# kubectl describe pv
PersistentVolumeClaim
# kubectl get pvc
# kubectl describe pvc
StorageClass
# kubectl get sc
# kubectl get sc -o yaml
Multiple Resources
# kubectl get svc,po
# kubectl get deploy,no
# kubectl get all
# kubectl get all --all -namespaces

2. 改变资源属性

Taint
# kubectl taint [node_name] [taint_name] 
Labels
# kubectl label [node_name] disktype=ssd
# kubectl label [pod_name] env=prod
Cordon/Uncordon
# kubectl cordon [node_name]
# kunectl uncordon [node_name]
Drain
# kubectl drain [node_name]
Nodes/Pods
# kubectl delet enode [node_name]
# kubectl delet epod [pod_name]
# kubectl edit node [node_name]
# kubectl edit pod [pod_name] 
Deployments/Namespaces
# kubectl edit deploy [deploy_name]
# kubectl delete deploy [deploy_name]
# kubectl expse deploy [deploy_name] --por=80  -type=NodePort
# kubectl scale deploy [deploy_name] --repicas=5
# kubectl delete ns 
# kubectl edit ns [ns_name]
Services
# kubectl edit svc [svc_name]
# kubectl delete svc [svc_name]
DaemonSets
# kubectl edit ds [ds_name] -n kube-system
# kubectl delete ds [ds_name]
Service Accounts
# kubectl edit sa [sa_name]
# kubectl delete sa [sa_name]
Annotate
# kubectl annotate po [pod_name] [annotation]
# kubectl annotate no [node_name]

3. 添加资源

Taint
# kubectl taint [node_name] [taint_name] 
Labels
# kubectl label [node_name] disktype=ssd
# kubectl label [pod_name] env=prod
Cordon/Uncordon
# kubectl cordon [node_name]
# kunectl uncordon [node_name]
Drain
# kubectl drain [node_name]
Nodes/Pods
# kubectl delet enode [node_name]
# kubectl delet epod [pod_name]
# kubectl edit node [node_name]
# kubectl edit pod [pod_name] 
Deployments/Namespaces
# kubectl edit deploy [deploy_name]
# kubectl delete deploy [deploy_name]
# kubectl expse deploy [deploy_name] --por=80  -type=NodePort
# kubectl scale deploy [deploy_name] --repicas=5
# kubectl delete ns 
# kubectl edit ns [ns_name]
Services
# kubectl edit svc [svc_name]
# kubectl delete svc [svc_name]
DaemonSets
# kubectl edit ds [ds_name] -n kube-system
# kubectl delete ds [ds_name]
Service Accounts
# kubectl edit sa [sa_name]
# kubectl delete sa [sa_name]
Annotate
# kubectl annotate po [pod_name] [annotation]
# kubectl annotate no [node_name]

4. 请求

API Call
# kubectl get --raw /apis/metrics.k8s.io/
Cluster Info
# kubectl config 
# kubectl cluster-info
# kubectl get componentstatuses
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352