mirror of https://github.com/easzlab/kubeasz.git
增加查询镜像tag的小工具,更新04-安装docker服务.md
parent
a7d4c4e8d6
commit
11f83831fe
|
@ -1 +1,105 @@
|
|||
## 04-安装docker服务.md
|
||||
|
||||
``` bash
|
||||
roles/docker/
|
||||
├── files
|
||||
│ ├── daemon.json
|
||||
│ ├── docker
|
||||
│ └── docker-tag
|
||||
├── tasks
|
||||
│ └── main.yml
|
||||
└── templates
|
||||
└── docker.service.j2
|
||||
```
|
||||
|
||||
请在另外窗口打开[roles/docker/tasks/main.yml](../roles/docker/tasks/main.yml) 文件,对照看以下讲解内容。
|
||||
|
||||
### 创建docker的systemd unit文件
|
||||
|
||||
``` bash
|
||||
[Unit]
|
||||
Description=Docker Application Container Engine
|
||||
Documentation=http://docs.docker.io
|
||||
|
||||
[Service]
|
||||
Environment="PATH={{ bin_dir }}:/bin:/sbin:/usr/bin:/usr/sbin"
|
||||
ExecStart={{ bin_dir }}/dockerd --log-level=error
|
||||
ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT
|
||||
ExecReload=/bin/kill -s HUP $MAINPID
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
LimitNOFILE=infinity
|
||||
LimitNPROC=infinity
|
||||
LimitCORE=infinity
|
||||
Delegate=yes
|
||||
KillMode=process
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
+ dockerd 运行时会调用其它 docker 命令,如 docker-proxy,所以需要将 docker 命令所在的目录加到 PATH 环境变量中;
|
||||
+ docker 从 1.13 版本开始,将`iptables` 的`filter` 表的`FORWARD` 链的默认策略设置为`DROP`,从而导致 ping 其它 Node 上的 Pod IP 失败,因此必须在 `filter` 表的`FORWARD` 链增加一条默认允许规则 `iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT`
|
||||
+ 运行`dockerd --help` 查看所有可以可配置参数,确保默认开启 `--iptables` 和 `--ip-masq` 选项
|
||||
|
||||
### 配置国内镜像加速
|
||||
|
||||
众所周知从国内下载docker官方仓库镜像非常缓慢,所以对于k8s集群来说配置镜像加速非常重要,配置 `/etc/docker/daemon.json`
|
||||
|
||||
``` bash
|
||||
{
|
||||
"registry-mirrors": ["https://registry.docker-cn.com"]
|
||||
}
|
||||
```
|
||||
|
||||
这将在后续部署calico下载 calico/node:v2.6.2镜像和kubedns/heapster/dashboard镜像时起到重要加速效果。
|
||||
|
||||
由于K8S的官方镜像存放在`gcr.io`仓库,因此这个镜像加速对K8S的官方镜像没有效果;好在`Docker Hub`上有很多K8S镜像的转存,而`Docker Hub`上的镜像是国内可以加速的。这里推荐https://hub.docker.com/u/mirrorgooglecontainers/几乎能找到所有K8S相关的google镜像,而且更新及时,感谢维护者的辛勤付出!后文将看到部署附加组件时基本都是用他们的镜像,
|
||||
|
||||
### 清理 iptables
|
||||
|
||||
因为后续`calico`网络、`kube-proxy`等将大量使用 iptables规则,安装前清空所有`iptables`策略规则;常见发行版`Ubuntu`的 `ufw` 和 `CentOS`的 `firewalld`等基于`iptables`的防火墙最好直接卸载,避免不必要的冲突。
|
||||
|
||||
``` bash
|
||||
iptables -F && iptables -X \
|
||||
&& iptables -F -t nat && iptables -X -t nat \
|
||||
&& iptables -F -t raw && iptables -X -t raw \
|
||||
&& iptables -F -t mangle && iptables -X -t mangle
|
||||
```
|
||||
### 启动 docker 略
|
||||
|
||||
### 安装docker查询镜像 tag的小工具
|
||||
|
||||
docker官方目前没有提供在命令行直接查询某个镜像的tag信息的方式,网上找来一个脚本工具,使用很方便。
|
||||
|
||||
``` bash
|
||||
> docker-tag library/ubuntu
|
||||
"14.04"
|
||||
"16.04"
|
||||
"17.04"
|
||||
"latest"
|
||||
"trusty"
|
||||
"trusty-20171117"
|
||||
"xenial"
|
||||
"xenial-20171114"
|
||||
"zesty"
|
||||
"zesty-20171114"
|
||||
>docker-tag mirrorgooglecontainers/kubernetes-dashboard-amd64
|
||||
"v0.1.0"
|
||||
"v1.0.0"
|
||||
"v1.0.0-beta1"
|
||||
"v1.0.1"
|
||||
"v1.1.0-beta1"
|
||||
"v1.1.0-beta2"
|
||||
"v1.1.0-beta3"
|
||||
"v1.7.0"
|
||||
"v1.7.1"
|
||||
"v1.8.0"
|
||||
```
|
||||
+ 需要先apt安装轻量JSON处理程序 `jq`
|
||||
+ 然后下载脚本即可使用
|
||||
+ 脚本很简单,就一行命令如下
|
||||
|
||||
``` bash
|
||||
#!/bin/bash
|
||||
curl -s -S "https://registry.hub.docker.com/v2/repositories/$@/tags/" | jq '."results"[]["name"]' |sort
|
||||
```
|
||||
|
|
|
@ -34,3 +34,16 @@
|
|||
|
||||
- name: start-docker
|
||||
shell: systemctl restart docker
|
||||
|
||||
## 可选 ------安装docker查询镜像 tag的小工具----
|
||||
- name: apt更新缓存刷新
|
||||
apt: update_cache=yes cache_valid_time=72000
|
||||
tags: docker-tag
|
||||
|
||||
- name: 安装轻量JSON处理程序
|
||||
apt: name=jq state=latest
|
||||
tags: docker-tag
|
||||
|
||||
- name: 下载 docker-tag
|
||||
copy: src=docker-tag dest={{ bin_dir }}/docker-tag mode=0755
|
||||
tags: docker-tag
|
||||
|
|
Loading…
Reference in New Issue