[DAY5]认识kubectl指令

kubectl

装好K8S後,可以使用kubectl进行K8S CLUSTER的操作
开启TERNIAML,输入以下指令

kubectl command type name flags

command

command指要什麽资源作什麽「动作」,有下列command指令

  • get : 取得物件的某某资讯
  • describe : 取得物件的叙述说明
  • create : 新增某某物件
  • delete : 删除某某物件

type

资源的类型,EX

kubectl get pod 

这边有很详细的类型别 资源类型
比较常用的不外是

kubectl get pod 
kubectl get pods
kubectl get nodes
kubectl get servies
kubectl get namespaces

name

name就资源名称,ex pod name,node name,如果要查看复数的资源时,加个空白就可以ex

kubectl get pod coredns-558bd4d5db-8pz59 coredns-558bd4d5db-ldx8g -n kube-system

执行结果

NAME                       READY   STATUS    RESTARTS   AGE
coredns-558bd4d5db-8pz59   1/1     Running   1          20h
coredns-558bd4d5db-ldx8g   1/1     Running   1          20h

flag

flag是option,目前常用的flag就是 -n ,指定namespace,如果没加-n namespace就是default

kubectl get pods
No resources found in default namespace.

常用指令

kubectl config

最最最重要的指令

kubectl config current-context

不管要什麽异动k8s的动作前,一定要先下kubectl config current-context,确认目前cluster是不是要操作的对象,下面是比较常常会使用到的语法(来源:kubectl cli)

current-context 显示目前的 context
delete-cluster 删除 kubeconfig 档案中指定的丛集(cluster)
delete-context 删除 kubeconfig 档案中指定的 context
get-clusters 显示 kubeconfig 档案中定义的丛集(cluster)
get-contexts 描述一个或多个 context
use-context 设置 kubeconfig 档案中的目前 context

kubectl logs

看log是码农的日常/images/emoticon/emoticon06.gif

查询pod snapshot的log资料

kubectl logs kube-proxy-plnjz -n kube-system

查询pod streaming的log资料

kubectl logs -f -p kube-proxy-plnjz -n kube-system

二都差在-f的log资料会一直显示出来,如果需要一直观察log记录的情形下,记得加上-f

查询最近n笔资料

kubectl logs --tail=20 -p kube-proxy-plnjz -n kube-system

kubectl exec

指令
kubectl exec (POD | TYPE/NAME) [-c CONTAINER] [flags] -- COMMAND [args...] [options]
对pod执行指令,像是要进到redis pod里面下redis-cli之类时可以用到

kubectl exec -ti test-redis -- /bin/bash

Kubectl apply/delete

apply可以针对cluster进行建立/更新资源,反之delete是进行删除,因为後面会介绍helm,所以apply就不再进行介绍,还有一个部份要注意,如果你apply上去的yaml档有异动里面的内容,这样子进行delete会发生错误喔,要记得delete要跟apply同一份yaml

kubectl apply -f test.yaml
kubectl delete -f test.yaml

Kubectl portforward

这个指令对於K8s使用者们来说,除了查log外,portforward应该是船长们的日常,
portforward这功能简单来说,就是把你电脑跟k8s透过http port进行相连,如下图

前面port是本机,後面是pod的port,别搞错喔~~

kubectl port-forward nginx-43d51d22a1-3aa1q 8787:80

这样子在本机打127.0.0.1:8787会转到nginx /images/emoticon/emoticon01.gif

以上大概是个人很常用的指令,还有一些特殊需求时才会下的就不特别提出来讲了,因为太


<<:  Day 8 网路宝石:【Lab】VPC外网 Public Subnet to the Internet (IGW) (下)

>>:  Day05 Filebeat(三) 正则表达式

Day27条件选择器switch(JavaScript)

switch 主要功能是依据不同的条件去执行其动作 他基本型态会长这样 switch (expres...

DAY 1 - 蜥蜴拳修士

灯灯灯~ 好不容易挤出来啊~ 差点难产! 那就让我们开始乱涂吧~ 喔耶~ <( ̄︶ ̄)/ 目标...

【基础影像应用篇】DAY5. 建立模型专案与影像标记流程(下)

在开始本次教学前,若对於专案建立与影片上传有任何疑问,欢迎去参考上一篇DAY4专案建立与影像标记流程...

[Day12] JavaScript - 闭包 Closure

闭包(Closure)在MDN的解释为: 是函式以及该函式被宣告时所在的作用域环境(lexical ...

Day10 Scanner(Ⅱ)

Scanner 常使用到的Methods 整数 nextInt() 2.小数 nextDouble(...