Docker常用命令
查看日志指定日期
docker logs  -t --since="2021-05-18" 606d13dac351

进入node容器可实时查看当前运行容器负载状态

docker stats | grep -viE "disk|oss|nas|csi|POD|kube|node-exporter"

常见docker清理方法

docker system df 类似于Linux上的df命令,用于查看Docker的磁盘使用情况:

docker system prune 可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。

docker system prune -a 清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了…所以使用之前一定要想清楚.。我没用过,因为会清理 没有开启的 Docker

docker中 启动所有的容器命令
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 关闭所有的容器命令
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 删除所有的容器命令
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 删除所有的镜像
docker rmi $(docker images | awk '{print $3}' |tail -n +2)

 

 

kubectl #####################################

#输出pod中曾经运行过,但目前已终止的容器的日志

kubectl logs -f  --previous  pod

-p, --previous[=false]: 如果为true,输出pod中曾经运行过,但目前已终止的容器的日志
    --since=0: 仅返回相对时间范围,如5s、2m或3h,之内的日志。默认返回所有日志。只能同时使用since和since-time中的一种
    --since-time="": 仅返回指定时间(RFC3339格式)之后的日志。默认返回所有日志。只能同时使用since和since-time中的一种
    --tail=-1: 要显示的最新的日志条数。默认为-1,显示所有的日志
    --timestamps[=false]: 在日志中包含时间戳
————————————————

可查看当前k8s集群中,指定运行的主机所有pod
kubectl  get pod -A -o wide| grep -vE 'kube|moni' | grep -E "111.IP|111.IP|246.IP|111.IP"

切换上下文命名空间(kubectl get pods 如果不指定-n 默认查看kube-system 空间下pod)

kubectl config set-context --current --namespace=kube-system

查看node主机下所运行的pod容器

docker stats | grep -viE "disk|oss|nas|csi|POD|kube|node-exporter"

k8s-copy pod 到宿主机
kubectl cp -n ccc xxxxxr-6665c54954-67xdn:var/www/bin/Debug ./

查看负载
uptime  | awk -F ',' '{print $4}'|awk '{print $3}'

清理 Evicted
kubectl -n monitoring get pod  | grep Evicted | awk '{print $1}' | xargs kubectl delete pod -n monitoring

不允许pod调度到此node,对正在运行的pod不会驱逐
kubectl cordon  n2

节点排水驱n2 node所有pod忽略daemoset
kubectl drain n2 --delete-local-data=true --ignore-daemonsets=true  --force

取消污点
kubectl uncordon n2

查看node标签
kubectl get nodes --show-labels

添加node节点标签
kubectl label nodes node1 disktype=ssd

删除命名空间下指定的两个pod

kubectl  -n $ns get pod | grep -iE  "oscarsystem-service-|oscarsystemv3" |  awk -F ' ' '{print $1}' |xargs kubectl -n $ns  delete  pod

删除节点标签
kubectl label nodes node1 disktype-

#####
创建pod###busybox-不太好用
kubectl -n cbc run cbc-busybox --image=harbor.cluster.com:6666/rancher/busybox:latest --port=42

kubectl run nginx --image=nginx:maxline

删除卡住无法删除的pod

kubectl delete pod podname-5c8844476b-4qtx6 -n wx --grace-period=0 --force

创建svc暴露端口
kubectl expose deploy  busybox --name=busybox --port=42 --protocol=TCP

创建一个service让外界能够消费。使用命令行创建这样的一个service

kubectl expose deployment nginx --type=LoadBalancer --port=80 --target-port=80

k8s如何查看runtime是docker 还是Containerd k8s查看容器日志命令_Docker

 

Nodeport

kubectl expose deployment nginx --type=NodePort --port=80 --target-port=80

Pod 端口转发功能

kubectl port-forward pod/nginx-6f754dd4b9-74jdn 8080:80

看到提示信息Forwarding from 127.0.0.1:8080 -> 80, 意思是把当前主机的8080端口映射到nginx pod的80工作端口:

 

 

k8s如何查看runtime是docker 还是Containerd k8s查看容器日志命令_Docker_02

 

 

######
edit编辑svc修改资源
kubectl edit svc busybox

命令更新deploy image版本
kubectl set image deploy busybox busybox=harbor.cluster.com:6666/rancher/busybox:v2

回退上个版本
kubectl rollout undo deployment/busybox
kubectl rollout status deployment/busybox

版本注解在deployment加

annotations:
     kubernetes.io/change-cause: "httpd.v3"

k8s如何查看runtime是docker 还是Containerd k8s查看容器日志命令_Docker_03

 

 

查看历史版本记录
kubectl rollout history deploy/busybox --revision=5

查看历史版本详细信息
kubectl rollout history deploy/busybox --revision=5
REVISION  CHANGE-CAUSE
1         <none>
2         <none>
4         <none>
5         <none

回滚到指定的版本
kubectl rollout undo deployment/busybox  --to-revision=2

rancher prestart

sh -c 'cp /nginx.conf /etc/nginx/conf.d/nginx.conf ;  sed -ri "s#pod#$HOSTNAME#g" /etc/nginx/conf.d/nginx.conf'

阿里云 kubernetes Api

https://help.aliyun.com/document_detail/160530.html

grep "severity" ./* -rn

 

------

容器跟随服务启动 run 时添加

--restart=always

 

正在启动的 添加方式

docker container update--restart=always 容器名

 

验证方式:

docker inspect kibana|grep always

 

yum install -y yum-utils

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum install docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io -y

 

 

 

docker-compose 关机或者重启docker同时重启容器restart always的配置

众所周知,存粹使用docker启动的话需要加–restart=always即可实现这个功能,而使用docker-compose的话在相关服务配置下加 restart: always 就行


version: '2'

services:

database:

build: ./mysql/

command: mysqld --user=root --verbose

restart: always

environment:

MYSQL_DATABASE: "web_level3_sqli"

MYSQL_USER: "web_level3_sqli"

MYSQL_PASSWORD: "thisisasecurepassword123"

MYSQL_ROOT_PASSWORD: "root"

MYSQL_ALLOW_EMPTY_PASSWORD: "yes"

web:

build: ./www/

restart: always

ports:

- "12000:80"

volumes:

- ./www/src:/var/www/html

links:

- database