Hexo

Hexo

Kubernetes的使用技巧
Created2019-02-27|Linux
1. bash针对kubectl命令的自动补充这可能是在使用Kubernetes过程中最容易做的事,但它也是其中一个最有用的。要添加自动补充功能,如果使用bash,只需执行以下命令: echo "source <(kubectl completion bash)" >> ~/.bashrc 它将添加自动补全命令到你的.bashrc文件。因此每个你打开的shell窗口都支持该功能。我发现自动补全对一些长的参数,比如–all-namespaces特别有用。 2. 给每个namespace添加默认的内存和CPU限额是人就会犯错。我们假定某人写了个应用,他每秒就会打开一个数据库连接,但是不会关闭。这样集群中就有了一个内存泄漏的应用。假定我们把该应用部署到了没有限额设置的集群,那么该应用就会crash掉一个节点。为了避免这种情况,Kubernetes允许为每个namespace设置默认的限额。要做到这很简单,我们只需创建一个limit range 的 yaml 并应用到特定namespace。以下是一个例子: apiVersion: v1 ki...
Hung_task_timeout_secs参数
Created2019-02-26|Linux
问题客户有一台服务器,安装了VMW软件做了虚拟化,在其上搭建了一台readhat虚拟机,起初给的内存为16G,在添加了12G的内存后,将虚拟机的内存调整到了20G调整完后主机这边就一直报错: Nov 5 13:05:41 RedHat5 kernel: INFO: task oracle:22439 blocked for more than 120 seconds. Nov 5 13:05:41 RedHat5 kernel: “echo 0 > /proc/sys/kernel/hung_task_timeout_secs” disables this message. 解决方法从以上的报错信息也给出了简单的解决方案,就是禁止该120秒的超时: echo 0 > /proc/sys/kernel/hung_task_timeout_secs 原因查询了资料后对于该参数的了解为后台对进行的任务由于超时而挂起 随后询问了主机工程师:给出方案是按照告警里的提示将该提醒disable后续询问后给出如下解释: This is a know bug. By default...
K8S的pod内获取变量的值错误
Created2019-02-26|Linux
问题今天遇到一个问题,就是用shell脚本从k8s的pod内获取变量,然后再进行赋值或字符拼接时,结果发现总是不对,但是通过自定义的变量没有问题以下为问题复现: [root@cloud-cn-master-1 ~]# cc=`kubectl exec -it -n nginx-system nginx-df4b995c5-98w66 -c nginx-01 env | grep SYS_ADMIN_USERNAME | awk -F"=" '{print $2}'` [root@cloud-cn-master-1 ~]# echo $cc sysadmin [root@cloud-cn-master-1 ~]# echo $cc"abcde" :abcdein [root@cloud-cn-master-1 ~]# [root@cloud-cn-master-1 ~]# dd=test [root@cloud-cn-master-1 ~]# echo $dd test [root@cloud-cn-master-1 ~]# ...
K8s的一次路由故障
Created2019-02-26|Linux
问题今天有个客户三台master上有两台的kube-dns一直起不来,如图: 排查 查看pod的日志: 看到报错后首先想到的就是rount有问题,然后通过查看路由发现,有问题的两台机器多了一条路由: 通过以下命令查看本机应该对应的flannel的路由: [root@node-dev-3 ~]# cat /run/flannel/subnet.env FLANNEL_NETWORK=10.5.0.0/16 FLANNEL_SUBNET=10.5.2.1/24 FLANNEL_MTU=1450 FLANNEL_IPMASQ=true 解决方法 删除多余的路由规则: [root@node-dev-3 ~]# route del -net 10.5.2.0 gw 172.26.7.12 netmask 255.255.255.0 删除之前的旧dns pod [root@node-dev-3 ~]# kubectl delete pod -n kube-system kube-dns-xxx 最后查看dns pod 已经正常运行
DNS介绍
Created2019-02-25|Linux
DNS解析全过程 客户机提出域名解析请求,并将该请求发送给本地的域名服务器。 当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。 如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。 本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。 重复第四步,直到找到正确的纪录。 本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。 1、什么是域名解析?域名解析就是国际域名或者国内域名以及中文域名等域名申请后做的到IP地址的转换过程。IP地址是网路上标识您站点的数字地址,为了简单好记,采用域名来代替ip地址标识站点地址。域名的解析工作由DNS服务器完成。 2、什么是A记录?A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web serve...
Linux:配置iptables使内网虚拟机访问公网
Created2019-02-25|Linux
问题当公网ip地址不够用的时候,或者出于安全目的,虚拟机使用纯内网ip,然后通过nat转发出去,是一个典型的虚拟化网络环境。 解决方法 打开宿主机的内核转发: echo 1 > /proc/sys/net/ipv4/ip_forward 配置nat iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o br0 -j SNAT --to 外网ip 然后虚拟机网关配置宿主机内网ip,就可以上网了。 注意点: 1 宿主机虚拟机之间的流量是走的forward的链,宿主机的forward链必须全部打开。 2 如果希望外面能访问虚拟机上的应用,可以配置端口映射 比如将宿主机的10080映射到虚拟机192.168.1.8的80端口,命令如下: iptables -t nat -A PREROUTING -d 外网ip -p tcp --10080 -j DNAT --to 192.168.1.8:80
Commonly used Git command list
Created2019-02-24|Linux
说在前边的话一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。 几个代码库* Workspace:工作区 * Index / Stage:暂存区 * Repository:仓库区(或本地仓库) * Remote:远程仓库 一、新建代码库# 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-name] # 下载一个项目和它的整个代码历史 $ git clone [url] 二、配置Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。 # 显示当前的Git配置 $ git config --list # 编辑Git配置文件 $ git config -e [--global] # 设置提交代码时的用户信息 $ git config [--global] user.name "[name]" $ git config [--global] user.email "...
Ansible常用模块详解
Created2019-02-24|Linux
写在前边的根据zs官方的分类,将模块按功能分类为:云模块、命令模块、数据库模块、文件模块、资产模块、消息模块、监控模块、网络模块、通知模块、包管理模块、源码控制模块、系统模块、单元模块、web设施模块、windows模块 ,具体可以参看官方页面。这里从官方分类的模块里选择最常用的一些模块进行介绍。 一、ping模块测试主机是否是通的,用法很简单,不涉及参数: ansible test -m ping 二、setup模块setup模块,主要用于获取主机信息,在playbooks里经常会用到的一个参数gather_facts就与该模块相关。setup模块下经常使用的一个参数是filter参数,具体使用示例如下: ansible 10.212.52.252 -m setup -a 'filter=ansible_*_mb' //查看主机内存信息 ansible 10.212.52.252 -m setup -a 'filter=ansible_eth[0-2]' //查看地接口为eth0-2的网卡信息 ansible all -m setup ...
Git common commands
Created2019-02-24|Linux
常用的几条git add . git commit -m "xxxxxx" git push git pull 基本操作查看、添加、提交、删除、找回,重置修改文件git help <command> # 显示command的help git show # 显示某次提交的内容 git show $id git co -- <file> # 抛弃工作区修改 git co . # 抛弃工作区修改 git add <file> # 将工作文件修改提交到本地暂存区 git add . # 将所有修改过的工作文件提交暂存区 git rm <file> # 从版本库中删除文件 git rm <file> --cached # 从版本库中删除文件,但不删除文件 git reset <file> # 从暂存区恢复到工作文件 git reset -- . # 从暂存区恢复到工作文件 git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改 git ci <file...
明朝皇帝列表
Created2019-02-24|Other
明朝皇帝列表太祖朱元璋(1328-1398) 年号“洪武”1368年称帝,在位31年 太祖朱元璋,安徽凤阳人,公元1368年8月,由朱元璋领导的起义军在大将徐达、常遇春等人的指挥下一举攻陷元大都–北京,宣告了元朝的灭亡。同年,朱元璋在建康(今南京)称帝,改元洪武,建立了明王朝,朱元璋是为明太祖。他死于1398年,时年71岁。 惠帝朱允炆(1377-1402) 年号“建文”1398年即位,在位5年 惠帝,太祖孙,皇太子朱标的次子,朱元璋在世时,大封王室,20多个儿子均封为亲王,分驻各地,惠帝登基后,进行削藩,以统一军事,惹恼诸王,燕王朱棣其兵北京,1402年攻入南京,惠帝一说被烧死,一说外逃。 成祖朱棣(1360-1424) 年号“永乐”1402年即位,在位23年 成祖朱棣,朱元璋的第四子,朱棣以入京除奸为名,发动了“靖难之役“。经过四年的战争,在1420年打败惠帝统治集团,夺取了明朝政权,建元永乐,是为明成祖。 1421年迁都北京,并下令编纂了《永乐大典》。死于1424年,时年65岁。 仁宗朱高炽(1378-1425) 年号“洪熙”1424年即位,在位1年仁宗 ...
1…4567
avatar
John Doe
Articles
64
Tags
9
Categories
4
Follow Me
Announcement
This is my Blog
Recent Posts
x86 GPU 的机器报错处理2026-07-19
linux 进入单用户重置密码2026-07-19
如何查看Linux网卡出口流量2026-07-19
如何有效的修改Linux云服务器的hosts配置2021-01-28
hexo中图片无法加载2021-01-26
Categories
  • GPU1
  • Linux53
  • Other4
  • Windows3
Tags
Linux AI 算力 重置Linux密码 运维 GPU 命令 iftop 系统运维 网卡流量
Archives
  • July 2026 3
  • January 2021 3
  • April 2020 10
  • August 2019 1
  • July 2019 1
  • June 2019 1
  • May 2019 5
  • March 2019 13
Website Info
Article Count :
64
Unique Visitors :
Page Views :
Last Update :
© 2025 - 2026 By John DoeFramework Hexo 8.1.2|Theme Butterfly 5.6.0