zoukankan      html  css  js  c++  java
  • 安装简易OpenShift单节点并配置DNS泛域名

    1 楔子

    公司有个项目部署在 OpenShift 容器云平台上,出现问题较多,于是萌生在公司环境搭建现场仿真环境,由于资源没有生产环境多,就使用单节点简单模拟下

    本文主要内容包括以下:

    1. 使用 Dnsmasq 实现 OpenShift 平台的内网域名解析
    2. 使用 oc 命令行工具初始化 OpenShift 3.9 单主机

    2 规划

    OpenShift基础服务约占4GB左右内存,由于使用 oc 进行初始化 OpenShift,所以不能集群扩容,又因为公司项目内存占用太大,所以与运维老哥协调了高配服务器。

    硬件:

    CPU型号 核心数 内存 硬盘
    Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz 30C 125GB 4TB

    软件:

    软件名 版本
    CentOS release 7.7.1908 (Core)
    Docker 18.03.1-ce
    OpenShift v3.9.71
    Kubernetes v1.9.1
    Dnsmasq 2.76-10.el7_7.1
    • k8s是 OpenShift 自动安装的,版本比较低,高版本可自行参考官方文档。

    • 主机系统、Docker等本文不再累述

    3 安装配置OpenShift

    3.1 配置oc命令行工具

    下载 oc 客户端工具:https://github.com/openshift/origin/releases,由于现场提供了3.9.71版本的客户端,和这个版本区别不大,读者可用这个版本操作。

    mkdir openshift && cd /home/openshift
    curl -Lo oc-3.11.linux.tar.gz https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
    tar xvf oc-3.11.linux.tar.gz
    mv oc /usr/local/bin
    #验证
    oc version
    #bash补全,执行完成重新login下shell
    yum install bash-completion
    oc completion bash > /etc/bash_completion.d/oc
    

    3.2 启动OpenShift

    mkdir -p /data1/openshift
    oc cluster up 
    	--use-existing-config=true 
    	--skip-registry-check=true 
    	--host-config-dir='/data1/openshift/config' 
    	--host-data-dir='/data1/openshift/data' 
    	--host-pv-dir='/data1/openshift/pv' 
    	--host-volumes-dir='/data1/openshift/volumes' 
    	--public-hostname='openshift.cnxx' 
    	--routing-suffix='dev.cnxx'
    
    • --host 开头的参考都是指定写到本机的目录位置,我的环境/data1硬盘空间大
    • --public-hostname 指定后续 DNS 映射的域名
    • --routing-suffix 指定部署服务的域名后缀,如 test-app.dev
    • 域名需要注意下,如果不作上游域名代理用什么域名都行,如果用了上游的代理,可能会被浏览器视为网络攻击拦截掉,提前使用dig命令尝试下
    #默认无密OpenShift超级管理员
    oc login -u system:admin
    #创建集群管理员用户
    htpasswd -c /data1/openshift/admin-htpasswd cluster-admin
    #添加集群管理员权限
    oc adm policy add-cluster-role-to-user cluster-admin cluster-admin
    #创建项目
    oc new-project hyhbbb --display-name='开发环境' #display-name可使用中文
    #添加项目使用者
    htpasswd -c /data1/openshift/hyhbbb-htpasswd hyhbbb
    oc adm policy add-role-to-user admin hyhbbb -n hyhbbb
    

    用户角色权限参考:

    4 安装配置 Dnsmasq

    Dnsmasq是一款DNS解析软件,适用于少量用户使用,有配置简单等优点。由于踩过了Bind9的坑,这里直接用 Dnsmasq 配置域名解析。

    #安装dnsmasq
    yum install -y dnsmasq
    

    Dnsmasq 默认读取的是 /etc/hosts 作优先解析,使用 /etc/resolv.conf 作默认上游 DNS 服务器,这里就不修改 /etc/hosts/etc/resolv.conf

    [root@server-127 openshift]# egrep -v "^#|^$" /etc/dnsmasq.conf
    strict-order 	#使用严格顺序查找
    listen-address=127.0.0.1,10.2.41.127 	#dnsmasq监听地址,也可以通过其他参数指定网卡
    conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig 	#默认的配置文件,未动
    address=/openshift.cnxx/10.2.41.127 			#解析域名到10.2.41.127
    address=/dev.cnxx/10.2.41.127 			#解析dev.cnxx后缀的泛域名到10.2.41.127
    

    重启服务

    systemctl restart dnsmasq
    

    验证

    yum install bind-utils
    
    [root@server-127 openshift]# dig openshift.cnxx
    
    ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> openshift.dev
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16855
    ;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;openshift.cnxx.			IN	A
    
    ;; ANSWER SECTION:
    ;openshift.cnxx.		0	IN	A	10.2.41.127
    
    ;; Query time: 0 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1)
    ;; WHEN: 二 12月 29 13:54:55 CST 2020
    ;; MSG SIZE  rcvd: 47
    
    

    5 访问测试

    6 Q&A

    Q1: oc login -u system:admin 提示需要密码

    A1: 参考如下方法:

    vim /etc/profile
    export KUBECONFIG=/data1/openshift/config/master/admin.kubeconfig
    export CURL_CA_BUNDLE=/data1/openshift/config/master/ca.crt
    source /etc/profile
    

    Q2: htpasswd 命令未找到

    A2: 安装 httpd

    yum install -y httpd
    

    htpasswd 参数:

    -c 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容.
    -n 不更新passwordfile,只将加密后的用户名密码显示在屏幕上;
    -m 默认采用MD5算法对密码进行加密
    -d 采用CRYPT算法对密码进行加密
    -p 不对密码进行进行加密,即使用普通文本格式的密码
    -s 采用SHA算法对密码进行加密
    -b 命令行中一并输入用户名和密码而不是根据提示输入密码,可以看见明文,不需要交互
    -D 删除指定的用户
    

    Q3: htpasswd 创建的用户怎么删除?

    A3: 使用 htpasswd -d 用户名


    Q4: 如图,不是私密连接是正常的,但是没有入口

    A4: 此种情况是由于此域名已被使用,请更换域名或去除上游DNS代理(去除上游代理可能就上不了网了)

    参考

    https://blog.csdn.net/xiongzaiabc/article/details/105005412

    https://my.oschina.net/u/4384701/blog/3386402

    https://www.cnblogs.com/sammyliu/p/10083659.html

  • 相关阅读:
    Executors 构建线程池
    结构型模式——Bridge(未完成)
    结构型模式——Adapter
    创建型模式——Builder
    创建型模式——Abstract Factory
    Java与线程
    Java内存模型
    类加载
    Class类文件的结构
    垃圾收集器
  • 原文地址:https://www.cnblogs.com/hellxz/p/easy_way_develop_openshift_env.html
Copyright © 2011-2022 走看看