1. Kubernetes部署准备工作

IP主机名角色
192.168.199.11192-168-199-11代理节点1
192.168.199.12192-168-199-12代理节点2
192.168.199.13192-168-199-13运算节点1
192.168.199.14192-168-199-14运算节点2
192.168.199.15192-168-199-15运维节点

DNS服务初始化

安装Bind9

主要在 192.168.199.11 上操作,安装时请注意主机名

[root@192-168-199-11 ~]# yum install bind -y
[root@192-168-199-11 ~]# rpm -qa bind
bind-9.11.4-16.P2.el7_8.6.x86_64
配置Bind9

修改主配置文件

[root@192-168-199-11 ~]# vim /etc/named.conf
listen-on port 53 { 192.168.199.11; };
# ipv6可删除,allow-query指定哪些主机可以使用此服务查询域名
allow-query     { any; };
# forwarders指向上层DNS,需要单独添加,我在此次填写的网关
forwarders      { 192.168.199.1; };
# 递归查询
recursion yes;
dnssec-enable no;
dnssec-validation no;

检查配置文件,正常情况无输出

[root@192-168-199-11 ~]# named-checkconf

配置主机域和业务域
修改域配置文件,在 /etc/named.rfc1912.zones 最下方添加如下内容

zone "host.com" IN {
        type  master;
        file  "host.com.zone";
        allow-update { 192.168.199.11; };
};

zone "od.com" IN {
        type  master;
        file  "od.com.zone";
        allow-update { 192.168.199.11; };
};

配置主机域数据文件

[root@192-168-199-11 ~]# cat /var/named/host.com.zone
$ORIGIN host.com.
$TTL 600        ; 10 minutes
@       IN SOA  dns.host.com. dnsadmin.host.com. (
                                2020052701 ; serial
                                10800      ; refresh (3 hours)
                                900        ; retry (15 minutes)
                                604800     ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                        NS   dns.host.com.
$TTL 60 ; 1 minute
dns                     A    192.168.199.11
192-168-199-11          A    192.168.199.11
192-168-199-12          A    192.168.199.12
192-168-199-13          A    192.168.199.13
192-168-199-14          A    192.168.199.14
192-168-199-15          A    192.168.199.15

配置业务域数据文件

[root@192-168-199-11 ~]# cat /var/named/od.com.zone
$ORIGIN od.com.
$TTL 600        ; 10 minutes
@               IN SOA  dns.od.com. dnsadmin.od.com. (
                                2020052701 ; serial
                                10800      ; refresh (3 hours)
                                900        ; retry (15 minutes)
                                604800     ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                                NS   dns.od.com.
$TTL 60 ; 1 minute
dns                A    192.168.199.11

检查配置文件

[root@192-168-199-11 ~]# named-checkconf

启动服务

[root@192-168-199-11 ~]# systemctl start named
[root@192-168-199-11 ~]# systemctl enable named
验证

验证服务是否正常启动

[root@192-168-199-11 ~]# netstat -lnutp | grep 53
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      1804/named
tcp        0      0 192.168.199.11:53       0.0.0.0:*               LISTEN      1804/named
tcp6       0      0 ::1:953                 :::*                    LISTEN      1804/named
udp        0      0 192.168.199.11:53       0.0.0.0:*                           1804/named

测试通过 192.168.199.11 是否能够解析 192-168-199-14.host.com

[root@192-168-199-11 ~]# dig -t A 192-168-199-14.host.com @192.168.199.11 +short
192.168.199.14

修改所有主机的网卡配置文件,指定DNS1=192.168.199.11 ,并重启网卡
修改 /etc/resolv.conf 文件,再第一行添加 search host.com 使其支持短域名。业务域不推荐使用短域名。

[root@192-168-199-15 ~]# cat /etc/resolv.conf
search host.com
nameserver 192.168.199.11
nameserver 223.5.5.5

测试

[root@192-168-199-15 ~]# ping 192-168-199-12
PING 192-168-199-12.host.com (192.168.199.12) 56(84) bytes of data.
64 bytes from 192.168.199.12 (192.168.199.12): icmp_seq=1 ttl=64 time=0.370 ms

[root@192-168-199-15 ~]# ping baidu.com
PING baidu.com (220.181.38.148) 56(84) bytes of data.
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=49 time=12.3 ms

准备签发证书环境

准备所需软件

主要在 192.168,199.15 上操作,下载所需软件包,修改权限后并验证

# 下载所需软件包
[root@192-168-199-15 ~]# wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -O /usr/bin/cfssl
[root@192-168-199-15 ~]# wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -O /usr/bin/cfssl-json
[root@192-168-199-15 ~]# wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -O /usr/bin/cfssl-certinfo

#修改权限
[root@192-168-199-15 ~]# chmod +x /usr/bin/cfssl*

#验证
[root@192-168-199-15 ~]# which cfssl
/usr/bin/cfssl
[root@192-168-199-15 ~]# which cfssl-json
/usr/bin/cfssl-json
[root@192-168-199-15 ~]# which cfssl-certinfo
/usr/bin/cfssl-certinfo
签发证书

创建生成 CA 证书签名请求(csr)的 JSON 配置文件

[root@192-168-199-15 ~]# vim /opt/certs/ca-csr.json
{
    "CN": "OldboyEdu",
    "hosts": [
    ],
    "key": {
        "algo": "rsa",
        "size": 2048
    },
    "names": [
        {
            "C": "CN",
            "ST": "beijing",
            "L": "beijing",
            "O": "od",
            "OU": "ops"
        }
    ],
    "ca": {
        "expiry": "175200h"
    }
}

CN:一般写的是域名,非常重要,浏览器使用该字段验证网站是否合法
C:国家
ST:州,省
L:地区,城市
O:组织名称,公司名称
OU:组织单位名称,公司部门
expiry:证书过期时间

生成 CA 证书和私钥

[root@192-168-199-15 ~]# cd /opt/certs/
[root@192-168-199-15 certs]# cfssl gencert -initca ca-csr.json | cfssl-json -bare ca
# cfssl gencert -initca ca-csr.json 可生成密钥文件,通过管道的方式将生成的证书传输到文件中
# 主要使用的是ca.pem 和 ca-key.pem
[root@192-168-199-15 certs]# ll
total 16
-rw-r--r-- 1 root root  993 May 27 23:06 ca.csr
-rw-r--r-- 1 root root  328 May 27 22:59 ca-csr.json
# 根证书的私钥
-rw------- 1 root root 1679 May 27 23:06 ca-key.pem
# 根证书
-rw-r--r-- 1 root root 1346 May 27 23:06 ca.pem

部署Docker环境

主要在 192.168.199.13192.168.199.14192.168.199.15 三台主机上操作

安装并配置docker

安装 docker

[root@192-168-199-13 ~]# curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
[root@192-168-199-14 ~]# curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
[root@192-168-199-15 ~]# curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

在已安装 docker 的主机上配置 docker

[root@192-168-199-13 ~]# mkdir -p /data/docker
[root@192-168-199-13 ~]# mkdir /etc/docker
[root@192-168-199-13 ~]# cat /etc/docker/daemon.json
{
  "graph": "/data/docker",
  "storage-driver": "overlay2",
  "insecure-registries": ["registry.access.redhat.com","quay.io","harbor.od.com"],
  "registry-mirrors": ["https://q2gr04ke.mirror.aliyuncs.com"],
  "bip": "172.7.13.1/24",
  "exec-opts": ["native.cgroupdriver=systemd"],
  "live-restore": true
}

bip最好与主机相对应,当启动容器时,可以很方便判断出容器所在的主句。
192.168.199.13 ----- 172.7.13.1/24
192.168.199.14 ----- 172.7.14.1/24
192.168.199.15 ----- 172.7.15.1/24

启动并验证容器

[root@192-168-199-13 ~]# systemctl start docker
[root@192-168-199-13 ~]# systemctl enable docker

[root@192-168-199-13 ~]# docker info
[root@192-168-199-13 ~]# docker ps -a

部署Harbor仓库

主要在 192.168.199.15 上操作

准备工作

下载并解压 harbor 离线安装包

[root@192-168-199-15 ~]# tar xf harbor-offline-installer-v1.8.3.tgz -C /opt/
[root@192-168-199-15 opt]# mv harbor/ harbor-v1.8.3
[root@192-168-199-15 opt]# ln -s /opt/harbor-v1.8.3/ /opt/harbor

harbor的离线安装包可从github上下载
强烈建议使用1.7.6及其以上的版本,1.7.5及其以下版本有越权的bug,普通用户可能会获取到管理员的权限

修改配置文件 /opt/harbor/harbor.yml ,主要修改以下内容

[root@192-168-199-15 opt]# vim /opt/harbor/harbor.yml
# 一定要配置,否则 install 的时候会报错 
hostname: harbor.od.com
# harbor的登录密码
harbor_admin_password: Harbor12345
# 会安装Nginx,把80端口让出来
  port: 180
data_volume: /data/harbor
# 日志的位置
  location: /data/harbor/logs

创建配置文件中所需的目录并安装 docker-compose

[root@192-168-199-15 opt]# mkdir -p /data/harbor/logs
[root@192-168-199-15 opt]# yum install docker-compose -y
安装并启动harbor

安装 harbor

[root@192-168-199-15 opt]# cd /opt/harbor
[root@192-168-199-15 harbor]# ./install.sh

查看启动的容器状态

[root@192-168-199-15 harbor]# docker-compose ps
      Name                     Command               State             Ports
--------------------------------------------------------------------------------------
harbor-core         /harbor/start.sh                 Up
harbor-db           /entrypoint.sh postgres          Up      5432/tcp
harbor-jobservice   /harbor/start.sh                 Up
harbor-log          /bin/sh -c /usr/local/bin/ ...   Up      127.0.0.1:1514->10514/tcp
harbor-portal       nginx -g daemon off;             Up      80/tcp
nginx               nginx -g daemon off;             Up      0.0.0.0:180->80/tcp
redis               docker-entrypoint.sh redis ...   Up      6379/tcp
registry            /entrypoint.sh /etc/regist ...   Up      5000/tcp
registryctl         /harbor/start.sh                 Up
配置反向代理

安装并配置 Nginx ,使用 Nginx 反向代理 harbor

[root@192-168-199-15 harbor]# yum install nginx -y

[root@192-168-199-15 harbor]# cat /etc/nginx/conf.d/harbor.od.com.conf
server {
    listen       80;
    server_name  harbor.od.com;

    client_max_body_size 1000m;

    location / {
        proxy_pass http://127.0.0.1:180;
    }
}

验证无报错后,启动 Nginx

[root@192-168-199-15 harbor]# nginx -t
[root@192-168-199-15 harbor]# systemctl start nginx
[root@192-168-199-15 harbor]# systemctl enable nginx

192.168.199.11 上配置 bind 使主机可以正常解析 harbor.od.com ,主要修改如下

[root@192-168-199-11 ~]# cat /var/named/od.com.zone
$ORIGIN od.com.
$TTL 600        ; 10 minutes
@               IN SOA  dns.od.com. dnsadmin.od.com. (
								# 前滚一个序号
                                2020052702 ; serial
                                10800      ; refresh (3 hours)
                                900        ; retry (15 minutes)
                                604800     ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                                NS   dns.od.com.
$TTL 60 ; 1 minute
dns                A    192.168.199.11
# 添加 A 记录
harbor             A    192.168.199.15

验证是否可以解析 harbor.od.com

[root@192-168-199-11 ~]# dig -t A harbor.od.com +short
192.168.199.15
WEB页面配置

登录 harbor 默认用户名为 admin 密码为 Harbor ,新建名称为 public 的公开项目
新建项目
192.168.199.15 上,从官方 pull 一个镜像下来,并上传到私有仓库

[root@192-168-199-15 ~]# docker pull nginx:1.7.9
[root@192-168-199-15 ~]# docker tag 84581e99d807 harbor.od.com/public/nginx:v1.7.9

# 登录到私有仓库,否则无法上传成功
[root@192-168-199-15 ~]# docker login harbor.od.com
……
Login Succeeded

# 上传镜像到私有仓库
[root@192-168-199-15 ~]# docker push harbor.od.com/public/nginx:v1.7.9

私有仓库已存在刚刚上传的镜像
上传成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值