安裝簡易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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM