K8S的pod内获取变量的值错误
问题今天遇到一个问题,就是用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 ...
DNS介绍
DNS解析全过程
客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。
本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
重复第四步,直到找到正确的纪录。
本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
1、什么是域名解析?域名解析就是国际域名或者国内域名以及中文域名等域名申请后做的到IP地址的转换过程。IP地址是网路上标识您站点的数字地址,为了简单好记,采用域名来代替ip地址标识站点地址。域名的解析工作由DNS服务器完成。
2、什么是A记录?A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。 ...
Linux:配置iptables使内网虚拟机访问公网
问题当公网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
明朝皇帝列表
明朝皇帝列表太祖朱元璋(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年仁宗
...
Ansible常用模块详解
写在前边的根据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 --tr ...
Commonly used Git command list
说在前边的话一般来说,日常使用只要记住下图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 "[ema ...
Git common commands
常用的几条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> ...
GitHub + Hugo to Build a Personal Blog
-
自己搭博客的N个理由
你的笔记非常值钱,丢了就等于丢了N年工作经验。
大多数博客网站都满足不了你:
倒闭/停止服务/被删库时,你多半没备份。
格式互不兼容,导入导出困难,复制粘贴会乱。
富文本编辑器极其难用。
可配置的地方不够,你讨厌的功能一堆。
可以使用 Markdown 写博文:
任何一个文本编辑器都能写,随时随地。
足够沉浸,让你忘记格式,专注内容。
备份容易:
GitHub, GitBook, 印象笔记,CSDN,博客园,简书等都支持,到处复制粘贴也能得到大致相同的格式。
纯文本本身也有足够可读性,网站/软件不支持也无所谓。
GitHub 提供免费空间和 CDN,站点放 GitHub 仓库也方便做版本控制。
用来当印象笔记的一个备份网站,写作的同时加深印象
方便自己,方便他人
可以作为学习新技术的试验田。
注册 GitHub先注册一个 GitHub 账号。
用户名会成为网址的一部分,以下为建议
最好全英文小写
不需要空格
不需要太长
建议使用自己的名字,方便好记。
例:用户名 adolf,对应网址 adolf.github.io
安装GitMa ...
Create_lvm
创建 pvpvcreate /dev/sdb
创建 vgvgcreate docker /dev/sdb
检查 vgvgdisplay docker
创建 lvlvcreate --wipesignatures y -n thinpool docker -l 90%VG
注: 在名字叫 docker 的 vg 上创建名字叫 thinpool 的 lv,并指定这个 lv 使用的空间是 vg 的90%,–wipesignatures y 参数的意思是擦除signatures #
创建 lvlvcreate --wipesignatures y -n thinpoolmeta docker -l 5%VG
注:在名字叫 docker 的 vg 上创建名字叫 thinpoolmeta 的 lv,并指定这个 lv 使用的空间是 vg 的5%,–wipesignatures y 参数的意思是擦除signatures#
将pool转换为thinpoollvconvert -y --zero n -c 512K --thinpool docker/thinpool --poolmetadata ...
Delete private registry mirror
首先,在默认情况下,docker registry 是不允许删除镜像的,需要在配置config.yml中启用,在reigstry容器内:
delete:
enabled: true
然后,使用 API GET /v2/<镜像名>/manifests/ 来取得要删除的镜像:Tag所对应的 digest。Registry 2.3 以后,必须加入头 Accept: application/vnd.docker.distribution.manifest.v2+json,否则取到的 digest 是错误的,这是为了防止误删除。比如,要删除 myimage:latest 镜像,那么取得 digest 的命令是:
$ curl --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
-I -X HEAD http://192.168.99.100:5000/v2/myimage/manifests/latest \
| grep Digest
Docker-Content-D ...