萨德基:
制造自然环境布署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探索的知识。