|
4 | 4 |
|
5 | 5 | ## 初始化环境
|
6 | 6 |
|
| 7 | +初始化环境需要安装常用的网络调试及使用工具,关掉防火墙,关于大页内存,也可以有选择关掉。 |
| 8 | + |
| 9 | +centos 7 别名了rm等相关指令,删除前需要手动确定,这个对于命令执行很不方便,所以要去掉alias |
| 10 | + |
| 11 | +IPv4 forwarding需要打开,走ipv4的网络不通,特别是keepalive+haproxy做负载均衡或代理时,不打开这样,网络通不过。 |
| 12 | + |
| 13 | +``` |
| 14 | +#安装网络及常用工具 |
| 15 | +yum install wget -y |
| 16 | +yum install -y telnet nmap curl tcping |
| 17 | +yum install unzip -y |
| 18 | +yum install traceroute -y |
| 19 | +yum install mtr -y |
| 20 | +
|
| 21 | +#关掉防火墙 |
| 22 | +systemctl stop firewalld.service |
| 23 | +systemctl disable firewalld.service |
| 24 | +
|
| 25 | +#关掉selinux enforcing:强制模式 permissive:宽容模式 disabled:关闭 |
| 26 | +sed -i "s/=enforcing/=disabled/g" /etc/selinux/config |
| 27 | +cat /etc/selinux/config |
| 28 | +setenforce 0 |
| 29 | +
|
| 30 | +#关掉大页内存 |
| 31 | +cat >/etc/rc.local << EOF |
| 32 | +#!/bin/bash |
| 33 | +touch /var/lock/subsys/local |
| 34 | +echo never >/sys/kernel/mm/transparent_hugepage/enabled |
| 35 | +echo never >/sys/kernel/mm/transparent_hugepage/defrag |
| 36 | +EOF |
| 37 | +chmod +x /etc/rc.d/rc.local |
| 38 | +cat /etc/rc.local |
| 39 | +
|
| 40 | +#去掉alias |
| 41 | +sed -i "s/alias/#alias/g" ~/.bashrc |
| 42 | +cat ~/.bashrc |
| 43 | +
|
| 44 | +#WARNING: IPv4 forwarding is disabled. Networking will not work. |
| 45 | +cat >/etc/sysctl.conf <<EOF |
| 46 | +net.ipv4.ip_forward=1 |
| 47 | +EOF |
| 48 | +systemctl restart network |
| 49 | +#查看 |
| 50 | +sysctl net.ipv4.ip_forward |
| 51 | +
|
7 | 52 | ```
|
8 | 53 |
|
| 54 | +## 安装Docker |
| 55 | +docker是容器安装的基础环境,这个需要先决条件。必须要求 |
| 56 | + |
| 57 | + |
| 58 | +### 下载解压 |
| 59 | +因为管理机会管理所有机器的安装,对于每一种安装,要分门别类建立目录,把相关的文件存放在对应的目录中 |
9 | 60 |
|
10 | 61 | ```
|
| 62 | +# 把下载的好的docker放在上面并安装docker |
| 63 | +mkdir /docker/ |
| 64 | +cd /docker/ |
| 65 | +wget https://download.docker.com/linux/static/stable/x86_64/docker-17.06.2-ce.tgz |
| 66 | +tar -xvf docker-17.06.2-ce.tgz |
| 67 | +mkdir /usr/local/bin/ |
| 68 | +cp -rf docker/docker* /usr/local/bin/ |
11 | 69 |
|
| 70 | +``` |
12 | 71 |
|
| 72 | +### 创建service文件 |
13 | 73 |
|
14 |
| -## 安装Docker |
| 74 | +centos7已经默认支持systemd的方式,安装docker采用service安装最佳的方式 |
15 | 75 |
|
| 76 | +``` |
| 77 | +cat > /docker/docker.service << EOF |
| 78 | +[Unit] |
| 79 | +Description=Docker Application Container Engine |
| 80 | +Documentation=http://docs.docker.io |
| 81 | +[Service] |
| 82 | +Environment="PATH=/root/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin" |
| 83 | +EnvironmentFile=-/run/flannel/docker |
| 84 | +ExecStart=/usr/local/bin/dockerd --log-level=error \$DOCKER_NETWORK_OPTIONS |
| 85 | +ExecReload=/bin/kill -s HUP \$MAINPID |
| 86 | +Restart=on-failure |
| 87 | +RestartSec=5 |
| 88 | +LimitNOFILE=infinity |
| 89 | +LimitNPROC=infinity |
| 90 | +LimitCORE=infinity |
| 91 | +Delegate=yes |
| 92 | +KillMode=process |
| 93 | +[Install] |
| 94 | +WantedBy=multi-user.target |
| 95 | +EOF |
| 96 | +
|
| 97 | +sudo iptables -P FORWARD ACCEPT |
| 98 | +cat /docker/docker.service |
16 | 99 |
|
| 100 | +``` |
17 | 101 |
|
| 102 | +### 加速镜像 |
18 | 103 |
|
| 104 | +中国地区下载docker官方很慢,需要加速,需要配置加速镜像,一般现在使用aliyun加速。 |
| 105 | +另外内网中访问则采用http的方式,docker register 默认采用了https,需要作 |
| 106 | +http的 insecure-registries的配置 |
19 | 107 |
|
| 108 | +``` |
| 109 | + mkdir -p /etc/docker/ |
| 110 | + cat > /etc/docker/daemon.json << EOF |
| 111 | +{ |
| 112 | + "registry-mirrors": ["https://ap1xf0lr.mirror.aliyuncs.com","http://2f02dbc7.m.daocloud.io", "https://docker.mirrors.ustc.edu.cn", "hub-mirror.c.163.com"], |
| 113 | + "max-concurrent-downloads": 10, |
| 114 | + "insecure-registries":["192.168.0.20:5000","10.1.12.61:5000","10.1.11.60:5000"] |
| 115 | +} |
| 116 | +EOF |
20 | 117 |
|
21 |
| -## 安装文件服务器 |
| 118 | +cat /etc/docker/daemon.json |
22 | 119 |
|
| 120 | +cp -rf /docker/docker.service /etc/systemd/system/docker.service |
23 | 121 |
|
| 122 | +``` |
| 123 | +### 启动服务 |
24 | 124 |
|
| 125 | +``` |
| 126 | +sudo iptables -F && sudo iptables -X && sudo iptables -F -t nat && sudo iptables -X -t nat |
25 | 127 |
|
| 128 | +sudo systemctl daemon-reload |
| 129 | +sudo systemctl enable docker |
| 130 | +sudo systemctl start docker |
| 131 | +sudo systemctl status docker |
26 | 132 |
|
| 133 | +#测试能够下载文件 |
| 134 | +docker pull registry.cn-hangzhou.aliyuncs.com/kube_containers/pause-amd64:3.0 |
| 135 | +docker tag registry.cn-hangzhou.aliyuncs.com/kube_containers/pause-amd64:3.0 gcr.io/google_containers/pause-amd64:3.0 |
| 136 | +docker rmi registry.cn-hangzhou.aliyuncs.com/kube_containers/pause-amd64:3.0 |
| 137 | +
|
| 138 | +``` |
| 139 | + |
| 140 | +## 安装文件服务器 |
| 141 | +文件服务器主要为了安装过程使用的内部文件下载的服务器,可以采用tomcat、Apache,这样小型的文件服务采用docker的 nginx安装是最方便的。 |
| 142 | +首先需要在本地建立一个文件夹,把需要的文件放到该文件夹中,然后wget就可以通过http在内部中下载使用, |
| 143 | +该文件服务器是安装过程所必须的,如果没有话,批量安装从外网下(能下的话)非常慢。 |
27 | 144 |
|
28 | 145 |
|
| 146 | +``` |
| 147 | +mkdir -p /www/ |
| 148 | +#把相关的文件放到宿主机的/www中,即可直接访问 |
| 149 | +docker run -d -v /www:/usr/share/nginx/html --restart=always \ |
| 150 | + --name nginx-server -p 80:80 nginx:1.7.9 |
| 151 | +
|
| 152 | + #把docker文件放到文件服务器上去,然后就可以下载 |
| 153 | + mkdir -p /www/docker/ |
| 154 | + cp /docker/docker-17.06.2-ce.tgz /www/docker/docker-17.06.2-ce.tgz |
| 155 | + #本地测试能不能下载 |
| 156 | + wget http://192.168.0.20/docker/docker-17.06.2-ce.tgz |
29 | 157 |
|
| 158 | +接下来就要把自己需要的文件都分门别类地放到/www目录中即可,不用重启nginx |
30 | 159 |
|
| 160 | +``` |
31 | 161 |
|
32 | 162 | ## 安装docker镜像库
|
33 | 163 |
|
| 164 | +无论是开发还是生产,无论是高大上还是简单的部署方式,内部镜像库是必不可少,不要被忽悠上传到阿里云,安全不讲,再快的速度也没有内网快和稳定。安装非高可用的docker镜像库与安装文件服务器一样简单。 |
| 165 | + |
| 166 | + |
| 167 | +``` |
| 168 | +mkdir -p /my_regisitry/ |
| 169 | +docker run -d -p 5000:5000 --restart=always --name registryV2 \ |
| 170 | + -v /my_regisitry:/var/lib/registry registry:2 |
| 171 | +
|
| 172 | +``` |
| 173 | + |
| 174 | +镜像文件会映射到/my_regisitry/目录中,可以查看。另外这里最好加--restart=always,有时候服务器重启之后,这个不重启,其访问不了镜像,这个在k8s中特别明显,如果该服务死了,所有的k8s重启时都拉不到镜像,出错一大片,如果应用高可用,这个还是需要做成高可用的。 |
| 175 | + |
| 176 | + |
34 | 177 |
|
35 | 178 |
|
36 | 179 |
|
0 commit comments