溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

解決回收linux的cache緩存,設(shè)置系統(tǒng)語言

發(fā)布時(shí)間:2020-06-30 05:22:19 來源:網(wǎng)絡(luò) 閱讀:898 作者:wx5c1cfd6e22842 欄目:系統(tǒng)運(yùn)維

在k8s當(dāng)中有可能你的網(wǎng)絡(luò)不是很好有的機(jī)器拉鏡像很慢,那么我們就可以將一臺(tái)機(jī)器上的鏡像進(jìn)行打包,然后直接將這個(gè)鏡像scp過去,直接導(dǎo)入進(jìn)docker就直接可以用了
格式
docker save -o 指定路徑和打包鏡像的名字 本地鏡像的名稱

[root@k8s-node2 ~]# docker save -o /root/flannel.tar zhaocheng172/flannel
[root@k8s-node2 ~]# ls
anaconda-ks.cfg flannel.tar

scp到其他的機(jī)器...........

現(xiàn)在進(jìn)行導(dǎo)入
格式docker load i 導(dǎo)過來的鏡像名稱
[root@k8s-node1 ~]# docker load -i flannel.tar
7bff100f35cb: Loading layer [==================================================>] 4.672MB/4.672MB
5d3f68f6da8f: Loading layer [==================================================>] 9.526MB/9.526MB
9b48060f404d: Loading layer [==================================================>] 5.912MB/5.912MB
3f3a4ce2b719: Loading layer [==================================================>] 35.25MB/35.25MB
9ce0bb155166: Loading layer [==================================================>] 5.12kB/5.12kB
Loaded image: zhaocheng172/flannel:v0.11.0-amd64

查看某個(gè)進(jìn)程占用多大的內(nèi)存
先使用top 找到進(jìn)程的pid,打印出來
[root@zhaocheng ~]# cat /proc/5076/status |grep VmRSS |awk '{print $2,$3}'
5884 kB

遇到Read-only file system,只讀文件系統(tǒng)

node6 rsyslogd[1984]: action 'action 0' suspended, next retry is Tue Jan 28 09:25:31 2020 [v8.24.0-34.el7 try http://www.rsyslog.com/e/2007 ]
Jan 28 09:25:01 k8s-node6 kube-proxy[2477]: I0128 09:25:01.155123    2477 config.go:132] Calling handler.OnEndpointsUpdate
Jan 28 09:25:01 k8s-node6 rsyslogd[1984]: imjournal: fopen() failed for path: '/var/lib/rsyslog/imjournal.state.tmp': Read-only file system [v8.24.0-34.el7 try http://www.rsyslog.com/e/2013 ]
Jan 28 09:25:01 k8s-node6 rsyslogd[1984]: imjournal: fopen() failed for path: '/var/lib/rsyslog/imjournal.state.tmp': Read-only file system [v8.24.0-34.el7 try http://www.rsyslog.com/e/2013 ]

解決方法給它寫權(quán)限重新掛載一下,這里可以針對(duì)目錄對(duì)進(jìn)行寫權(quán)限
[root@k8s-node6 ~]# mount -o remount -rw /

使用docker的時(shí)候會(huì)發(fā)現(xiàn)/var/lib/docker/overaly2或者containers下面占用比較大的時(shí)候,可以根據(jù)兩種辦法來進(jìn)行解決磁盤的占用情況
第一個(gè)就是清理/var/lib/docker/containers/的容器
使用du -sh * 來查看哪個(gè)容器的日志比較多,來進(jìn)行清理,可以使用cat /dev/null > xxxxxxxx-json.log
清理的時(shí)候可以查看df -h本地的占用已經(jīng)減少了,但是這個(gè)一般情況之后需要使用k8s的sidecar模式將日志采集到es上,不然微服務(wù)的日志情況之后日志就找不到了,所以這是前提或者其他的辦法去做這個(gè)容器日志的采集工作
如果這個(gè)下面的清空可能對(duì)你的磁盤沒多大,沒怎么減少,那么可以使用docker system df來查看docker 在本主機(jī)的多少的占用

[root@zhaocheng ~]# docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              7                   0                   2.346 GB            2.346 GB (100%)
Containers          0                   0                   0 B                 0 B
Local Volumes       0                   0                   0 B                 0 B

可以使用這個(gè)命令,這里顯示了所以的容器與鏡像的占用情況,還有可回收的資源,也就是沒有用到的,這個(gè)容器之前創(chuàng)建了之后,然后不用了,但是鏡像和容器的數(shù)據(jù)還有保存,所以,可以進(jìn)行對(duì)不用的容器進(jìn)行清理
可以使用docker container ls -a 來查看容器的狀態(tài)Exited 的退出狀態(tài)也就是沒有運(yùn)行,可以清理一下,可以使用docker rm -f xxid號(hào)
或者可以使用它自動(dòng)清理的命令

[root@zhaocheng ~]# docker system --help

Usage:  docker system COMMAND

Manage Docker

Options:
      --help   Print usage

Commands:
  df          Show docker disk usage
  events      Get real time events from the server
  info        Display system-wide information
  prune       Remove unused data

可以使用docker system prune來清理不使用的數(shù)據(jù)


  -a, --all     Remove all unused images not just dangling ones
  -f, --force   Do not prompt for confirmation
      --help    Print usage
[root@zhaocheng ~]# docker system prune --all
WARNING! This will remove:

-a 刪除所有未使用的鏡像,而不僅僅是懸掛的鏡像
這個(gè)刪除的話,不僅僅是沒有使用的鏡像,就是創(chuàng)建之后可能沒有都會(huì)刪除,所以這個(gè)最好慎用,一些重要的鏡像避免刪除

使用kubectl api-versions會(huì)輸出很多的api版本,在k8s中怎么去選用這些api對(duì)象呢,其實(shí)k8s有條命命令可以輸出對(duì)這個(gè)類型的使用的api對(duì)象
kubectl explain deployment
文檔里面會(huì)告訴你使用的類型

查看Linux系統(tǒng)語言,這是改好的

[root@hdss7-200 ~]# locale
LANG=en_US.UTF-8
LC_CTYPE="zh_CN.utf-8"
LC_NUMERIC="zh_CN.utf-8"
LC_TIME="zh_CN.utf-8"
LC_COLLATE="zh_CN.utf-8"
LC_MONETARY="zh_CN.utf-8"
LC_MESSAGES="zh_CN.utf-8"
LC_PAPER="zh_CN.utf-8"
LC_NAME="zh_CN.utf-8"
LC_ADDRESS="zh_CN.utf-8"
LC_TELEPHONE="zh_CN.utf-8"
LC_MEASUREMENT="zh_CN.utf-8"
LC_IDENTIFICATION="zh_CN.utf-8"
LC_ALL=zh_CN.utf-8

只需在系統(tǒng)變量增加下面一行

[root@hdss7-200 ~]# tail -2 /etc/profile
export LC_ALL=zh_CN.utf-8
然后source /etc/profile

回收linux的cache的內(nèi)存

[root@hdss7-12 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1738         343         253           8        1140        1124
Swap:             0           0           0
[root@hdss7-12 ~]# echo 1 > /proc/sys/vm/drop_caches
[root@hdss7-12 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1738         344        1106           8         287        1134
Swap:             0           0           0

進(jìn)行對(duì)目錄下的文件打包成zip格式
格式 zip -q -r 應(yīng)該打成的包名字的.zip的格式 + 目標(biāo)目錄
[root@VM_0_8_centos ~]# zip -q -r work.zip work/

查看進(jìn)程的cpu/memory的百分比占用情況
[root@VM_0_8_centos ~]# ps aux --sort -rss

K8s資源調(diào)度分組配置,給node節(jié)點(diǎn)創(chuàng)建分組標(biāo)簽

[root@k8s-master1 ~]# kubectl label node k8s-node1 team_node=node1
node/k8s-node1 labeled

并在spec下定義調(diào)度的節(jié)點(diǎn)

spec:
  nodeSelector:
    team_node: team1
  containers:

查看創(chuàng)建的標(biāo)簽

[root@k8s-master1 ~]# kubectl get node --show-labels
NAME          STATUS   ROLES    AGE    VERSION   LABELS
k8s-master1   Ready    <none>   4d4h   v1.16.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master1,kubernetes.io/os=linux
k8s-node1     Ready    <none>   4d4h   v1.16.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node1,kubernetes.io/os=linux,team_node=node1

刪除標(biāo)簽

[root@k8s-master1 ~]# kubectl label node k8s-node1 team_node-
node/k8s-node1 labeled
[root@k8s-master1 ~]# kubectl get node --show-labels
NAME          STATUS   ROLES    AGE    VERSION   LABELS
k8s-master1   Ready    <none>   4d4h   v1.16.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master1,kubernetes.io/os=linux
k8s-node1     Ready    <none>   4d4h   v1.16.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node1,kubernetes.io/os=linux

vim 命名替換文本中所有的字符
在k8s的yaml中有時(shí)候會(huì)遇到修改一些name的名稱,因?yàn)槲⒎?wù)的名稱基本都是一樣的,那么對(duì)全文進(jìn)行替換,使用的命令
替換所有行的內(nèi)容: :%s/pod-css-orr/pod-base-common/
對(duì)所有行的內(nèi)容進(jìn)行替換

k8s-busybox域名解析yaml

[root@k8s-master1 ~]# cat pod.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: busybox
  namespace: default
spec:
  containers:
  - name: busybox
    image: busybox:1.28.4
    command:
      - sleep
      - "3600"
    imagePullPolicy: IfNotPresent
  restartPolicy: Always

解析結(jié)果,如果解析其他的比如kube-system命名空間加個(gè).,比如
grafana.kube-system

[root@k8s-master1 ~]# kubectl exec -it busybox-deployment8-7c88f588d5-blvgw /bin/sh
/ # nslookup kubernetes
Server:    10.0.0.2
Address 1: 10.0.0.2 kube-dns.kube-system.svc.cluster.local

Name:      kubernetes
Address 1: 10.0.0.1 kubernetes.default.svc.cluster.local

查看pid的命令
ps,top,pgrep,fuser,lsof

linux光標(biāo)移動(dòng)
ctrl+a:跳到本行的行首
ctrl+e:跳到頁尾

vim光標(biāo)移動(dòng)到行首shift 4
vim光標(biāo)移動(dòng)到行尾shift 6
vim光標(biāo)移動(dòng)到下一行首shift 0

Linux實(shí)例磁盤空間滿和inode滿的問題排查方法
轉(zhuǎn)載地址來自阿里云技術(shù)文檔
https://help.aliyun.com/knowledge_detail/42531.html
使用NAT網(wǎng)關(guān)的SNAT功能,為專有網(wǎng)絡(luò)中無公網(wǎng)IP的ECS實(shí)例提供訪問互聯(lián)網(wǎng)的代理服務(wù)
轉(zhuǎn)載地址來自阿里云技術(shù)文檔
https://help.aliyun.com/document_detail/65183.html?
不同阿里云賬號(hào)下RDS MySQL實(shí)例間的數(shù)據(jù)同步
轉(zhuǎn)載地址來自阿里云技術(shù)文檔
https://help.aliyun.com/document_detail/26639.html?spm=a2c4g.11186623.2.53.413351bd7uZw5f#concept-26639-zh
在線擴(kuò)展分區(qū)和文件系統(tǒng)linux系統(tǒng)盤
轉(zhuǎn)載地址來自阿里云技術(shù)文檔
https://help.aliyun.com/document_detail/111738.html?spm=a2c4g.11186623.2.7.5cd04c070zXhjz#concept-ocb-htw-dhb

記一次服務(wù)器被挖礦的經(jīng)歷
云服務(wù)器 ECS Linux 服務(wù)器上 CPU 使用率超過 90%,嚴(yán)重時(shí)可達(dá)到 100%
使用ps或者top命令查看有個(gè)惡意進(jìn)程占用導(dǎo)致cpu飆升391%
解決回收linux的cache緩存,設(shè)置系統(tǒng)語言

可以看到,有一個(gè) trace的異常進(jìn)程,占用了大量 CPU 資源。該進(jìn)程是服務(wù)器被后,被惡意安裝的比特幣挖礦程序,一般存在于 /home/ 目錄下,當(dāng)然這個(gè)看具體位置

了解大概情況之后,大概知道通常是后會(huì)植入挖礦程序賺取收益,該類程序占用CPU等資源,影響用戶正常業(yè)務(wù),危害較大。

處理方案
惡意 trace、minerd、tplink 進(jìn)程

使用如下命令,通過 PID 獲取對(duì)應(yīng)文件的路徑。然后,找到并刪除對(duì)應(yīng)的文件。

ls -l /proc/$PID/exe

其中,$PID 為進(jìn)程對(duì)應(yīng)的 PID 號(hào),可以通過 ps 或者 top 獲取。

使用 kill 命令關(guān)閉進(jìn)程。
由于代碼ak可能暴漏在github或者其他地方,建議平時(shí)修改accesskey
建議平時(shí)增強(qiáng)服務(wù)器的安全維護(hù),優(yōu)化代碼,以避免因程序漏洞等導(dǎo)致服務(wù)器被。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI