Cronjob设置指定Docker任务定时重启
1 | # Cronjob 定时器格式介绍 |
1 | # 系统Cronjob设定 |
[/etc/crontab]
Thanks for watching!
Cronjob设置指定Docker任务定时重启
1 | # Cronjob 定时器格式介绍 |
1 | # 系统Cronjob设定 |
[/etc/crontab]
Thanks for watching!
Docker Registry安装和应用小记
1 | master 172.16.147.129 master.bruce.com |
1 | # 此处选用的版本为 registry:2 的版本 |
1 | # 只是生成htpasswd文件,生成完成后容器就会退出 |
1 | # docker registry yml 文件 |
1 | docker-registry/ |
1 | # 启动服务docker(需要在 docker-compose.yml 文件所在目录运行) |
1 | # (若是较新的docker版本中 修改/etc/default/docker中的$DOCKER_OPTS 即可) |
1 | docker login master.bruce.com:5000 |
1 | docker image tag myapp master.bruce.com:5000/myapp:v1 |
1 | curl http://master.bruce.com:5000/v2/_catalog |
1 | # 首先需要创建 docker-registry secret |
Ref: https://github.com/burnettk/delete-docker-registry-image
1 | curl https://raw.githubusercontent.com/burnettk/delete-docker-registry-image/master/delete_docker_registry_image.py | sudo tee /usr/local/bin/delete_docker_registry_image >/dev/null |
1 | # 注意!!! |
1 | sudo delete_docker_registry_image --image {what image want to be deleted} |
Thanks for watching!
环境准备 ubuntu 16.04.5 server x64 lts
1 | proxy http://118.25.xxx.xxx:8118 https://118.25.xxx.xxx:8118 |
1 | # 关闭缓存 |
1 | sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common |
此次docker安装 使用
apt install docker-compose方法安装 docker版本为 17.03.2-ce(安装的版本为当前时间下的最新版本) 也可以使用下面的方法进行安装docker
1 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - #添加软件源验证密钥 |
1 | sudo vim /etc/systemd/system/multi-user.target.wants/docker.service fd:// --registry-mirror={加速器地址} #添加docker下载镜像加速 |
1 | sudo systemctl daemon-reload #重新加载配置文件 |
1 | *环境版本信息* |
1 | sudo su |
1 | curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - #安装kubernetes软件源密钥 |
1 | cat <<EOF >/etc/apt/sources.list.d/kubernetes.list |
1 | # 安装kubelet kubectl kubeadm |
1 | # 初始化网络 |
1 | # 安装kubelet kubectl kubeadm |
1 | # 下载kubernetes-dashboard yaml文件 |
1 | # 增加 type: NodePort (暴露端口供外部访问) |
1 | --- |
1 | # 部署 |
1 | ref: https://github.com/kubernetes/heapster |
master节点默认不参与工作负载的原因
去掉master节点上的污点
1 | kubectl describe node | grep Taint --> Taints: node-role.kubernetes.io/master:NoSchedule |
1
1 | Q. Heapster cannot dial API server |
2
1 | Q. 如果碰到nodePort无法访问的情况,只能通过pod所在节点的ip进行访问,很大可能是iptables的原因(新版本的docker 会将FORWORD的请求默认DROP) |
3
1 | Q. master上的pod访问不到node上的pod,ip ping不通 |
1 | google后发现问题解决方案 |
1 | 在calico.yaml文件中加上一下属性,重新apply即可 |
1 | # 创建tls.crt tls.key 并生成 k8s secret,使用secret |
ingress暴露https连接时,需要添加一个支持https的
annotation,否则服务会报错tls: first record does not look like a TLS handshake
在ingress的yaml文件中添加 nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" 即可解决。
Ingress Annotation Referhttps://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/
bind 0.0.0.0即可。
Thanks For Watching!
brew(自行搜索安装啦)、nodejs、git、github账号以及命名为yourname.github.io的仓库、安装过程中爬梯会更快些,笔者在安装的过程中没有爬梯,简直生不如死QAQ~~~1 | $ brew install git |
在bash中输入该命令行可以自动安装git (mac其实有自带的git ,但是我自己还是安装了)。运行 git --version ,若看到版本号后就代表安装成功了。
1 | $ brew install npm |
其中"private":true, "description":"xxx" 两个属性要有,我安装完nodejs时配置文件中这两个字段为空,导致命令行运行 npm -v 时会有2个warn报错信息,虽然不会影响运行,但作为一个tester(其实是强迫症哈哈哈)实在是看不下去,于是找到解决办法解决了。
安装完成后,npm -v 能看到版本信息就代表安装成功了!
1 | $ npm install hexo -g |
安装时如果出现Error: Permission denied的情况,使用 sudo npm install hexo -g 即可。
安装过程会比较慢,取决于你与github之间的连接速度,安装完成后,使用hexo -v来查看是否安装成功。
在~目录下,创建一个blog文件夹,并在该文件夹中初始化hexo,命令行如下:
1
2
3$ mkdir blog
$ cd blog
$ hexo init
初始化成功后,使用ls -l可以看到以下文件:
此时使用 $ hexo server 或者 $ hexo s 就可以在本地启动hexo,打开 http://localhost:4000/就可以看到本地的blog系统了。
到这里,其实已经完成了一大部分了。那么问题来了,怎么讲blog部署到自己的github仓库中 去,并能够在外网访问呢?这里就要用到刚才准备好的github账号了。
配置hexo与github的连接
打开刚才blog目录中的yaml格式的配置文件_config.yml,需要注意的地方:yaml格式的文件每个冒号后面要加空格,换行时缩进需要严格控制(具体可以百度/谷歌 YAML文件),不然会影响到配置文件结构不对,导致部署失败。可以用vi、sublime 或者其他的文本工具编辑。
其中两个地方配置需要注意,其他的配置可以自己去研究一下哈~1
2
3
4
5
6
7
8
9
10
11
12
13
14#site
title: Nowhere //blog名
subtitle: //副标题
description: xxx //描述
keywords: //关键字
author: bruce //作者
language: zh-Hans //语言
timezone: Asia/Shanghai //时区
# Deployment
deploy:
type: git
repository: https://github.com/bruce0312/bruce0312.github.io //刚才前期准备的仓库
branch: master
设置完成后,保存。
$ hexo generate | $ hexo g$ hexo deploy | $ hexo d1 | $ git config user.emial github_email |
其中遇到一个坑,在deploy的时候提示我 ERROR Deployer not found: git;
这个问题需要安装hexo-deployer-git来解决,命令为:$ npm install hexo-deployer-git --save
好了,到这里部署成功后,blog基本搭建完成了,可以去yourname.github.io中查看的你成果啦~
1 | $ hexo 常用的命令 |
1 | $ cd blog/ |
下载完成后, $ vi _config.yml 修改hexo的配置文件中的theme字段,修改为theme: next后保存,运行$ hexo s 就可以重新加载在本地预览了~next主题自带四种风格的样式,可以进入/blog/themes/next中打开_config.yml配置文件,在Schemes中可以修改,笔者用的是Pisces啦,感觉还不错。其他的自定义配置都可以在这个配置文件中修改,感兴趣的可以自己去折腾哈!
Q: 为什么要使用ssh密钥?
A: 使用ssh密钥来和github通信更加方便快捷安全,省去输入账号密码的时间。
首先要检查本地电脑上是否存在SSH key$ ls -al ~/.ssh 如果没有存在,会显示No such file or directory;如果已经存在,会显示id_rsa和id_rsa.pub两个文件。
如果我们没有生成过SSH key,那么我们需要先生成本机的SSH key1
2
3$ ssh-keygen -t rsa -C "your_email@example.com"
#-t 秘钥类型
#-C Comment 这里可以填写你自己的github邮箱账号,主要是为了记录密钥的用途
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxx/.ssh/id_rsa): //提示你密钥保存的路径,直接默认ENTER即可。
Created directory ‘/Users/xxx/.ssh’.
Enter passphrase (empty for no passphrase): //提示输入 passphrase,每次与 GitHub 通信都会要求输入 passphrase,以避免某些「失误」,这里我怕麻烦直接ENTER了,因为输了以后,每次通信都需要输入passphrase。
Your identification has been saved in /Users/xxx/.ssh/id_rsa.
Your public key has been saved in /Users/xxx/.ssh/id_rsa.pub.
The key fingerprint is:
xxxxxx your_email@example.com
The key’s randomart image is:(后面图形省略)
此时,将id_rsa.pub中的密钥信息copy出来,方法有多种,比如最方便的如:1
$ pbcopy < ~/.ssh/id_rsa.pub
或者用cat命令查看,手动copy。
接下来,去github中设置你的deploy key,进入刚才准备好的yourname.github.io仓库,进入Settings - > Deploy keys - > Add deploy key
title:一般写用途
Key:粘贴刚才复制的秘钥信息
Allow write access:true
点击Add Key就可以保存成功了。
测试key能否正常使用:1
$ ssh -T git@github.com
如果看到如下的提示,就说明配置成功了。
Thanks For Watching!
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
1 | $ hexo new "My New Post" |
More info: Writing
1 | $ hexo server |
More info: Server
1 | $ hexo generate |
More info: Generating
1 | $ hexo deploy |
More info: Deployment