Kubernetes实用技巧汇总

2022-11-24 0 912

萨德基:

制造自然环境布署k8s后,不免要整天和k8s指示行关系密切,因此要掌控许多小基本功基本常识,提高咱采用K8s的管理效率,下面就由我为他们如是说,协力自学。

1、kubernetes 指示Bazelle

具体而言就得说说命令Bazelle,但他们通常用的是linux 此基础指示的Bazelle,对k8s而言就得有k8s专供的指示Bazelle包,那该是不是加装呢。关键步骤如下表所示:

(1)加装bash-completion包,没那么包就无法采用k8sBazelle,因此得先加装

yum install bash-completion -y

(2)接着继续执行bash-completion

source /usr/share/bash-completion/bashcompletion

(3)读取kubectl completion

source <(kubectl completion bash)

(4)接着就能采用了,假如没加装就会收起

Kubectl create ns

(5)Cancon,下面而已在现阶段shell的手动Bazelle,那是不是永久性施行

echo “source <(kubectl completion bash)”>>~/.bashrc 这种就能在bash shell中永久性加进手动Bazelle

2、codelet

Kubernetes实用性能采用yaml或是json表述,能采用的文档file有.yaml、.yml、.json

(1)建立两个天然资源

kubectl apply -f ./cillianpod.yaml

(2)建立多个天然资源是不是办?

kubectl apply -f ./cillian1.yaml -f ./cillian2.yaml

(3)建立基于目录下所有的清单文档建立天然资源

kubectl apply -f ./dir

(4)从两个url地址建立

kubectl apply -f https://gitee.io/cillin

(5)建立两个定时任务,间隔一分钟

kubectl create cronjob hello –image=busybox:1.28–schedule=”*/1* ** *”– echo “Hello World”

3、查看以及查找天然资源

(1)列出现阶段命名空间下的全部 Pods,并显示更详细的信息

kubectl get pods -o wide

kubectl get pod cillian-pod -o yaml

(3)输出node、pod详细信息

kubectl describe nodes my-node或是pod

(4)列出现阶段命名空间下所有的service,并按名称排序

kubectl get services –sort-by=.metadata.name

(5)列出 Pods,按重启次数排序,这个指示还是很实用的

kubectl get pods –sort-by=.status.containerStatuses[0].restartCount

kubectl get pods –field-selector=status.phase=Running

(7)显示所有 Pods 的标签

kubectl get pods –show-labels

(8)列举所有 Pods 中初始化容器的容器 ID(containerID),在清理停止的容器时能避免删除初始化的容器

kubectl get pods –all-namespaces -o jsonpath={range .items[*].status.initContainerStatuses[*]}{.containerID}{“\n”}{end} cut -d/-f3

4、更新天然资源

(1)#滚动更新”cillian” Deployment 的”front”容器镜像

kubectl set image deployment/frontend front=image:v2

(2)查看历史记录版本

kubectl rollout history deployment/frontend

(3)回滚到上次布署版本

kubectl rollout undo deployment/cillian

(4)回滚到特定版本

kubectl rollout undo deployment/cillian –to-revision=2.0.1

(5)更新状态监控滚动升级直到完成

kubectl rollout status -w deployment/cillian

(6)轮替重启

kubectl rollout restart deployment/cillian

(7)将某单容器 Pod 的镜像版本(标签)更新到 v4

kubectl get pod mypod -o yaml sed s/\(image: myimage\):.*$/\1:v4/ kubectl replace -f –

(8)给pod加进标签

kubectl label pods my-pod new-label=awesome

(9)#对 “cillian” Deployment 手动伸缩容

kubectl autoscale deployment cillian –min=2–max=10

5、编辑天然资源

(1)编辑名为 cillian 的服务

kubectl edit svc/cillian

(2)将名为cillian的副本集伸缩到3 副本

kubectl scale –replicas=3 rs/cillian

(3)#在 “cillian.yaml”文档中伸缩到3个副本

kubectl scale –replicas=3-f cillian.yaml

(4)假如名为 cillian 的 Deployment 的副本现阶段是1,那么将它伸缩到2

kubectl scale –current-replicas=1–replicas=2 deployment/cillian

6、删除天然资源

(1)删除指定pod

kubectl delete -f ./cillian.yaml

(2)删除指定服务和pod

kubectl delete pod,service cillian1 cillian2

(3)删除指定标签的服务和pod

kubectl delete pods,services -l name=myLabel

(4)删除在 cillian 命名空间中全部的 Pods 和服务

kubectl -n cillian delete pod,svc –all

7、与pods交互

(1)查看日志

kubectl logs mypod

(2)进入pod

Kubectl exec mypod bash

(3)采用交互 shell 访问正在运行的 Pod (两个容器场景)

kubectl exec –stdin –tty my-pod –/bin/sh

(4)复制文档

kubectl cp my-namespace/my-pod:/tmp/cillian /tmp/cillian

8、节点集群管理

(1)标记不可调度

kubectl cordon my-node

(2)驱逐节点

kubectl drain my-node

(3)取消不可调度标记

kubectl uncordon my-node

(4)显示主控节点和服务地址

kubectl cluster-info

(5)将集群状态输出到指定目录

kubectl cluster-info dump –output-directory=/path/to/cluster-state

好了,学会了这些采用基本功,相应付日常k8s没问题,下次分享有关k8s api探索的知识。

Kubernetes实用技巧汇总

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务