加入收藏 | 设为首页 | 会员中心 | 我要投稿 三门峡站长网 (https://www.0398zz.com.cn/)- 云连接、设备管理、智能边缘云、云防火墙、数据加密!
当前位置: 首页 > 教程 > 正文

Kubernetes运维的几个高端操作

发布时间:2021-01-25 15:25:33 所属栏目:教程 来源:互联网
导读:1.设置默认namespace 您可以使用namespace(例如,Dev1,Dev2,QA1,QA2等)将Kubernetes集群划分为多个环境,并且每个环境可以由不同的用户管理。运行kubectl命令的不便之一是,每次编写命令时,都需要在最后使用该--namespace 选项。运维人员通常会忘记这一

1.设置默认namespace

您可以使用namespace(例如,Dev1,Dev2,QA1,QA2等)将Kubernetes集群划分为多个环境,并且每个环境可以由不同的用户管理。运行kubectl命令的不便之一是,每次编写命令时,都需要在最后使用该--namespace 选项。运维人员通常会忘记这一点,最终在错误的namespace中创建对象(pod,service,deployment)。

使用此技巧,您可以在运行kubectl命令之前设置namespace首选项。在执行kubectl命令之前运行以下命令,它将为您的当前上下文保存所有后续kubectl命令的namespace:


  1. kubectl config set-context $(kubectl config current-context) --namespace=mynamespace 

下面列出了一些最常用和有用的namespace命令:


  1. kubectl get namespaces 
  2. kubectl create namespace mynamespace 
  3. kubectl get pods --all-namespaces (列出所有namespace中具有状态的所有Pod。) 
  4. kubectl get po -o wide -n -n -n (此命令将标识每个namespace中的容器) 
  5. kubectl describe namespace 
  6. kubectl config view --minify | grep namespace (此命令将确保您为当前上下文正确设置namespace。) 

2.配置常用的aliases别名以节省时间

Kubernetes命令可能很长,因此设置一些别名来运行kubectl非常有帮助。您将不再需要一遍又一遍地拼出完整的命令,当您想在一个会话中执行多个Kubernetes命令时,您的工作变得更加轻松。

我们在下面列出了一些常用命令的别名。在执行kubectl命令之前运行这些命令,以节省一些时间。示例:您只需要输入 k 而不是输入 kubectl:


  1. alias k='kubectl' 
  2.  
  3. alias kc='k config view --minify | grep name' 
  4.  
  5. alias kdp='kubectl describe pod' 
  6.  
  7. alias krh='kubectl run --help | more' 
  8.  
  9. alias ugh='kubectl get --help | more' 
  10.  
  11. alias c='clear' 
  12.  
  13. alias kd='kubectl describe pod' 
  14.  
  15. alias ke='kubectl explain' 
  16.  
  17. alias kf='kubectl create -f' 
  18.  
  19. alias kg='kubectl get pods --show-labels' 
  20.  
  21. alias kr='kubectl replace -f' 
  22.  
  23. alias kh='kubectl --help | more' 
  24.  
  25. alias krh='kubectl run --help | more' 
  26.  
  27. alias ks='kubectl get namespaces' 
  28.  
  29. alias l='ls -lrt' 
  30.  
  31. `alias ll='vils -rt | tail-1'
  32.  
  33. alias kga='k get pod --all-namespaces' 
  34.  
  35. alias kgaa='kubectl get all --show-labels' 

3.使用vi编辑YAML

有许多不同的编辑器可用于编写YAML文件,但是在很多时候,您可能需要在终端上快速调整生成的YAML。这是使用我们经常使用vi的地方,vi是最初为Unix操作系统创建的文本编辑器。

Vi编辑器有据可查,并且得到了开源社区很好的支持。但是,创建YAML文件时vi编辑器的问题之一是格式问题。我们需要一种缩进制表符并与空格对齐的方法。在编辑YAML文件时,总是使用制表符和空格键来产生空格(例如,在按回车键时,将2个空格作为YAML的默认值)。

创建 ~/.vimrc 并添加以下内容,从而使创建YAML文件并用vi编辑变得更加容易:


  1. set smarttab 
  2. set expandtab 
  3. set shiftwidth=4 
  4. set tabstop=4 
  5. set number 

4.从kubectl命令创建YAML

我们可以使用kubectl工具从命令行创建复杂的YAML文件。

大多数人会认为,使用YAML文件很无聊,而Kubernetes的YAML文件可能非常冗长且难以从头开始创建。使用kubectl命令而不是使用编辑器从空白页创建YAML文件要容易得多。

以下命令将创建一个YAML文件 yamlfile。通过这些kubectl命令创建YAML文件后,您可以根据需要对其进行修改并使用它,而不用从头开始编写:


  1. kubectl run busybox --image=busybox --dry-run=client -o yaml --restart=Never > yamlfile.yaml 
  2. kubectl create job my-job --dry-run=client -o yaml --image=busybox -- date > yamlfile.yaml 
  3. kubectl get -o yaml deploy/nginx > 1.yaml (Ensure that you have a deployment named as nginx) 
  4. kubectl run busybox --image=busybox --dry-run=client -o yaml --restart=Never -- /bin/sh -c "while true; do echo hello; echo hello again;done" > yamlfile.yaml 
  5. kubectl run wordpress --image=wordpress –-expose –-port=8989 --restart=Never -o yaml 
  6. kubectl run test --image=busybox --restart=Never --dry-run=client -o yaml -- bin/sh -c 'echo test;sleep 100' > yamlfile.yaml (最后的增加 --bin 。这将创建yaml文件。) 

创建YAML文件的另一个好办法是使用wget 命令直接从Internet获得文件 。

5.在Kubernetes namespace之间切换

在技巧1中,我们学习了一些有用的命令来使用Kubernetes namespace并保存它们,以便您不必添加到每个命令中。让我们扩展技巧,使其更容易在namespace和kubectl上下文之间切换。

有几种工具可以提供帮助,但是我们喜欢使用kubectx和kubens分别管理上下文和namespace。您可以在此处(https://github.com/ahmetb/kubectx/)找到kubectx和kubens的详细信息。

这是如何下载用于kubectx和kubens实用程序的Linux二进制文件:

  • wget

https://github.com/ahmetb/kubectx/releases/download/v0.9.0/kubectx_v0.9.0_linux_x86_64.tar.gz

  • wget

https://github.com/ahmetb/kubectx/releases/download/v0.9.0/kubens_v0.9.0_linux_x86_64.tar.gz

然后,使用以下命令提取它们:


  1. tar -xvf kubectx_v0.9.0_linux_x86_64.tar.gz 
  2. tar -xvf kubens_v0.9.0_linux_x86_64.tar.gz 

最后,将它们移至PATH:


  1. tar -xvf kubectx_v0.9.0_linux_x86_64.tar.gz 
  2. tar -xvf kubens_v0.9.0_linux_x86_64.tar.gz 


(编辑:三门峡站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读