淘先锋技术网

首页 1 2 3 4 5 6 7

项目使用k8s进行容器编排,通过rancher对k8s进行页面化管理,最后通过nginx和ldap实现rancher的统一访问和接口代理。

实现目标:

1、通过docker-compose安装rancher

2、通过rancher管理k8s集群

3、通过nginx应rancher进行反向代理

4、通过ldap对接rancher实现统一账户认证

实现过程:

1、通过docker-compose安装rancher

1.1、编列docker-compose文件docker-compose.yaml

version: '3'
services:
  rancher:
    image: 'rancher/rancher:v2.6.3'	#镜像文件
    privileged: true		#容器以root用户运行
    restart: always		#容器重启策略:总是自动重启
    container_name: rancher		#容器名称
    volumes:		#磁盘挂载,本地:容器内
      - ./data:/var/lib/rancher
      - /etc/resolved.conf:/etc/resolved.conf
    ports:
      - 10080:80	#端口映射,本地:容器内
      - 10443:443
    environment:	#时区
      - TZ=Asia/Shanghai

1.2、以docker-compose启动容器

#构建容器,构建后自动启动
docker-compose up -d
#清理,容器将被删除
docker-compose down
#停止,容器会被停止,不会被删除
docker-compose stop
#启动
docker-compose start

2、通过rancher管理k8s集群

2.1、登录rancher页面

https://192.168.16.120:10443

2.2、按照提示在服务器中执行命令,获取初始密码,登录后修改密码

#查看初始密码
docker logs  rancher  2>&1 | grep "Bootstrap Password:"

#密码忘记时,可通过如下命令初始化密码
docker exec -it rancher reset-password

2.3、选择集群管理-导入已有集群,导入集群

2.4、选择K8S集群

2.5、输入集群信息后点击创建

2.6、复制如下信息到k8s管理节点执行

2.7、等待集群创建完成

3、通过nginx应rancher进行反向代理

3.1、安装nginx

#yum安装nginx
yum -y install nginx

3.2、添加证书

#创建证书路径并进入

mkdir -p /etc/nginx/cert.d && cd /etc/nginx/cert.d

#申请自己的证书(有证书测跳过),

openssl req -new -x509 -nodes -days 3650 -out server.crt -keyout server.key

#填写相关信息

3.3、修改nginx配置,进行代理

#修改配置文件
vim /etc/nginx/nginx.conf
#配置文件内容如下
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
server {
    listen       80;
    listen       [::]:80;
    server_name  rancher.test.local;
    location / {
        proxy_pass http://192.168.16.120:10080;
        proxy_set_header Host              $host;
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host  $host;
        proxy_set_header X-Forwarded-Port  $server_port;
    }
}
server {
    listen       443 ssl;
    listen       [::]:443 ssl;
    server_name  rancher.test.local;
    ssl_certificate      /etc/nginx/cert.d/server.crt;
    ssl_certificate_key  /etc/nginx/cert.d/server.key;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_protocols        TLSv1 TLSv1.1 TLSv1.2;
    location / {
        proxy_pass https://192.168.16.120:10443;
        proxy_set_header Host              $host;
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host  $host;
        proxy_set_header X-Forwarded-Port  $server_port;
    }
}
}

3.4、通过nginx访问rancher,有域名解析时直接访问域名

https://192.168.16.120

https://rancher.test.local

4、通过ldap对接rancher实现统一账户认证

4.1、登录rancher后选择配置-用户&认证

4.2、点击认证,选择openldap,进行配置添加

4.3、输入ldap相关信息,点击保存即可完成配置。(测试和启用验证用户,默认绑定rancher管理员账户)