當前位置:首頁 » 編程語言 » K8S配置SQLserver
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

K8S配置SQLserver

發布時間: 2023-02-09 02:36:48

❶ k8s配置ingress

轉自 https://www.cnblogs.com/tchua/p/11174386.html
Ingress是kubernetes集群對外提供服務的一種方式.ingress部署相對比較簡單,官方把相關資源配置文件,都已經集合到一個yml文件中(mandatory.yaml),鏡像地址也修改為quay.io。

官方地址: https://github.com/kubernetes/ingress-nginx

Ingress Contronler 通過與 Kubernetes API 交互,動態的去感知集群中 Ingress 規則變化,然後讀取它,按照自定義的規則,規則就是寫明了哪個域名對應哪個service,生成一段 Nginx 配置,再寫到 Nginx-ingress-control的 Pod 里,這個 Ingress Contronler 的pod裡面運行著一個nginx服務,控制器會把生成的nginx配置寫入/etc/nginx.conf文件中,然後 reload 一下 使用配置生效。以此來達到域名分配置及動態更新的問題。

192.168.3.100 www.tchua.top
然後主機瀏覽器訪問 http://www.tchua.top:31199 ,這里訪問時需要加上svc映射到主機時隨機產生的nodePort埠號。

上面我們只是解決了集群對外提供服務的功能,並沒有對ingress進行高可用的部署,Ingress高可用,我們可以通過修改deployment的副本數來實現高可用,但是由於ingress承載著整個集群流量的接入,所以生產環境中,建議把ingress通過DaemonSet的方式部署集群中,而且該節點打上污點不允許業務pod進行調度,以避免業務應用與Ingress服務發生資源爭搶。然後通過SLB把ingress節點主機添為後端伺服器,進行流量轉發。

修改參數如下:

這里我在2台master節點部署(生產環境不要使用master節點,應該部署在獨立的節點上),因為我們採用DaemonSet的方式,所以我們需要對2個節點打標簽以及容忍度。

這里直接使用上面創建的pod及對應svc測試即可,另外注意一點,因為我們創建的ingress-controller採用的時hostnetwork模式,所以無需在創建ingress-svc服務來把埠映射到節點主機上。

在win主機上直接解析,IP地址為k8s-master03/k8s-master02 任意節點ip即可,訪問的時候也無需再加埠

備用鏡像

❷ Kubernetes(K8S)入門與安裝配置

Kubernetes是一個跨主機集群的開源的容器調度平台,它可以自動化應用容器的部署、擴展和操作,提供以容器為中心的基礎架構。谷歌旗下開源軟體,江湖人稱K8S。

上圖是一個通過K8S搭建的集群環境,採用三台物理機搭建(三台機器是K8S搭建集群的最低要求),我先簡單介紹一下幾個重點名詞。

Centos7Master*1(注意必須是雙核以上的CPU,否則無法初始化K8S)

Centos7Node*2

將文件上傳至該目錄

網盤地址:https://pan..com/s/1NiAdf0Gp24qjVx2v_HqqyQ

提取碼:aew7

執行以下命令

如果不是groupfs,執行下列語句

將最後一行注釋

運行dockerimages可以看到以下幾個關鍵應用

kube-proxy容器間通訊代理、kube-apiserverAPI服務端、kube-scheler任務調度器、kube-controller-manager集群控制器、corednsK8S內置的DNS伺服器、etcd用於保存集群所有的網路配置和對象的狀態信息、pause前面已經提到用於容器間的通訊以及數據卷的掛載。至此K8S安裝完成

圖中的第一個紅框的命令是需要管理員手動復制,然後在master伺服器上執行的。

PS:admin.conf是kubeadm集群管理的核心配置文件,包含整個集群各個節點的授權信息,以及本身的一些配置信息

第二個紅框中的命令是在node節點上執行,裡麵包含了一個加入集群的token認證信息以及ca證書的hashcode。通過該token可以加入K8S集群.

從圖中看到master節點處於NotReady狀態,說明節點中存在有問題的Pod,查看存在問題的pod,執行以下命令查看所有Pod狀態

如果某個Pod的STATUS處於CrashLoopBackOff狀態表示創建失敗了,那麼它會不斷自動重新創建。上圖中兩個coredns處於pending狀態,原因是我們沒有配置K8S網路通訊協議fannel,從上傳的文件中載入並創建flannel網路組件

3.在node節點上執行剛剛由kubeadm生成的節點加入命令

如果出現反復無法加入節點的情況,運行kubeadmreset這條命令還原當前節點上kubeadminit或者kubeadmjoin所做的所有更改。當想加入新節點忘記token時可以使用kubeadmtokenlist查看token,或者kubeadmtokencreate創建token,採用跳過ca安全認證的方式加入節點。

4.三台機器設置kubelet開機自啟,至此通過kubeadm集群配置完成

在主節點上執行以下命令,以下三個配件都是已經配置好的,裝載即可。

圖中dashboard服務已經被創建,配置文件中關閉了密碼驗證,只需要瀏覽器打開http://192.168.220.131:32000無需登錄。

❸ Rocketmq的k8s配置(1nameservice + 1brocker)

RockerMQ在k8s的部署有兩種方式, 一種是使用operator 在k8s集群中部署,可參考 operation項目 ; 一種是編寫簡單的k8s配置文件,在rocketmq的docker項目中有提供模板。
這里我們希望使用單機版k8s部署一套低配置rockerMQ, 僅啟動一個nameservice和1個broker,我們將使用 rocketmq-docker項目 提供的模板來完成。

apiVersion: apps/v1
kind: Deployment
metadata:
name: rocketmq
spec:
replicas: 1
selector:
matchLabels:
app: rocketmq
template:
metadata:
labels:
app: rocketmq
spec:
containers:
- name: broker
image: apacherocketmq/rocketmq:4.6.0
command: ["sh","mqbroker", "-n","localhost:9876"]
imagePullPolicy: IfNotPresent
ports:
- containerPort: 10909
- containerPort: 10911
env:
- name: JAVA_OPT
value: -server -XX:ParallelGCThreads=1
volumeMounts:
- mountPath: /home/rocketmq/logs
name: brokeroptlogs
- mountPath: /home/rocketmq/store
name: brokeroptstore
- name: namesrv
image: apacherocketmq/rocketmq:4.6.0
command: ["sh","mqnamesrv"]
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9876
volumeMounts:
- mountPath: /home/rocketmq/logs
name: namesrvoptlogs
volumes:
- name: brokeroptlogs
emptyDir: {}
- name: brokeroptstore
emptyDir: {}
- name: namesrvoptlogs
emptyDir: {}
- name: namesrvoptstore
emptyDir: {}

apiVersion: v1
kind: Service
metadata:
name: rocketmqservice
spec:
type: NodePort
ports:
- name: namesrv
port: 9876
targetPort: 9876
nodePort: 32000
selector:
app: rocketmq

notes: 簽名異常問題
Caused by: org.apache.rocketmq.acl.common.AclException: [10015:signature-failed] unable to calculate a request signature. error=Algorithm HmacSHA1 not available
手動方案I,在tool.sh 中${JAVA_HOME}/jre/lib/ext後加上ext文件夾的絕對路徑(jdk路徑)

最終方案: 手動的方式,很不方便,經過檢查,實際問題是由於路徑上的${JAVA_HOME}變數為空,導致無法找到etx路徑。所以,我們通過k8s的方式傳入JAVA_HOME環境便令就可以了。如下圖:

3.2 添加訂閱組
訂閱組 可以用來實現消費的loadbalance,同一訂閱組的消費者分享所有的讀隊列。
創建訂閱組使用updateSubGroup 命令,所需參數如下:

執行命令新建一個授權服務的消費組
./mqadmin updateSubGroup -b localhost:10911 -n localhost:9876 -g GID_authorize
執行結果:

❹ Kubernetes(k8s)配置管理ConfigMap&Secret

1)查看幫助:

2)通過文件夾創建:

3)通過文件創建:

4)通過文件創建(另起別名)

5)通過環境變數創建

6)通過配置文件創建

1)創建deployment資源文件

2)定義環境變數configmap

1)envFrom定義

1)創建Secret私有倉庫:
docker-registry:指定Secret的類型
myregistrykey: Secret名稱
DOCKER_REGISTRY_SERVER:鏡像倉庫地址
DOCKER_USER:鏡像倉庫用戶名,需要有拉取鏡像的許可權
DOCKER_PASSWORD:鏡像倉庫密碼
DOCKER_EMAIL:郵箱信息,可以為空

2)使用Secret私有倉庫:

1)生成證書

2)ingress中使用證書

❺ k8s Nginx Ingress 常用的 9個 配置(annotation)

上一篇文章介紹了 ingress vhost這個annotation的使用,趁熱打鐵我們一口氣介紹 9 個常用的annotation。 如果一個k8s 集群裡面部署多個ingress controller的時候,如果配置ingress 希望指定到某個ingress controller的時候,ingress claas就發揮巨大作用了。 一方面在controller啟動的時候需要通過參數指定ingress class 另一方面,在創建ingress的時候,通過annotation指定ingress class,如下所示 nginx.ingress.kubernetes.io/force-ssl-redirect: "true"通過這個annotation可以強制 https,如果是http請求,會通過 301 redirect到 https。 nginx.org/proxy-connect-timeout 和nginx.org/proxy-read-timeout 這兩個參數分別設置nginx的建立連接以及等待結果的超時時間。 我們經常將nginx作為api的網關,支持跨域必不可少。通過nginx.ingress.kubernetes.io/cors-allow-methods 設置支持跨域請求的方法。 限流也經常使用,通過 rps 限制每秒請求數,rpm 限制每分鍾請求數,connections限制連接數。 這個主要是針對外部請求,防止將流量打滿,proxy-body-size 設置最大請求 body,如果超過則會返回 413 請求錯誤。 這個主要是用於安全限制,只允許特定的客戶端請求,但由於現在網路中NAT的廣泛應用,這個參數使用的場景比較有限。 這個經常使用,當客戶端請求一個不存在的path的時候,我們不希望返回 404 ,跳轉到一個默認的服務上。 nginx ingress 默認是開啟access log的,如果你想關閉,可以通過將 nginx.ingress.kubernetes.io/enable-access-log 設置成false。

❻ mybatis通過windows方式連接sqlserver資料庫配置文件怎麼寫

不驗證用戶名密碼的登錄方式可以在JDBC串里實現,但也要依託某種驗證方式,例如下面這個使用k8s驗證的連接串的寫法:
jdbc:sqlserver://;servername=server_name;integratedSecurity=true;authenticationScheme=JavaKerberos
把配置文件里原有的dataSource裡面的url改了

<property name="url" value="jdbc:sqlserver://;servername=server_name;integratedSecurity=true;authenticationScheme=JavaKerberos"/>

❼ k8s 內部dns配置說明

https://support.huaweicloud.com/usermanual-cce/cce_01_0133.html

https://www.jianshu.com/p/dbc063e190c9

None 無任何策略
Default 默認
ClusterFirst 集群 DNS 優先
ClusterFirstWithHostNet 集群 DNS 優先,並伴隨著使用宿主機網路

nameserver:容器解析域名時查詢的DNS伺服器的IP地址列表。如果設置為10.247.x.x說明DNS對接到Kube-DNS/CoreDNS,如果是其他IP地址,則表示採用華為雲DNS或者用戶自建的DNS。
search:定義域名的搜索域列表,當訪問的域名不能被DNS解析時,會把該域名與搜索域列表中的域依次進行組合,並重新向DNS發起請求,直到域名被正確解析或者嘗試完搜索域列表為止。對於CCE集群來說,容器的搜索域列表配置3個域,當解析一個不存在的域名時,會產生8次DNS查詢,因為對於每個域名需要查詢兩次,分別是IPv4和IPv6。
options:定義域名解析配置文件的其他選項,常見的有timeout、attempts和ndots等等。Kubernetes集群容器的域名解析文件設置為options ndots:5,該參數的含義是當域名的「.」個數小於ndots的值,會先把域名與search搜索域列表進行組合後進行DNS查詢,如果均沒有被正確解析,再以域名本身去進行DNS查詢。當域名的「.」個數大於或者等於ndots的值,會先對域名本身進行DNS查詢,如果沒有被正確解析,再把域名與search搜索域列表依次進行組合後進行DNS查詢。如查詢 www.huaweicloud.com 域名時,由於該域名的「.」個數為2,小於ndots的值,所以DNS查詢請求的順序依次為: www.huaweicloud.default.svc.cluster.local 、 www.huaweicloud.com.svc.cluster.local 、 www.huaweicloud.com.cluster.local 和 www.huaweicloud.com ,需要發起至少7次DNS查詢請求才能解析出該域名的IP。可以看出,這種配置在訪問外部域名時,存在大量冗餘的DNS查詢,存在優化點。

❽ Spark on k8s: 配置和使用ConfigMap

顧名思義,用來存配置的Map,可以存單個配置或者配置文件,在 POD 中我們可以通過環境變數來訪問單個配置和配置文件,後者一般會被 mount 到 Pod 的一個 Volume 上,這樣我們在跑 Spark on k8s 的時候,可以將一些配置放在 ConfigMap 中,和容器鏡像解耦。

如果使用 Spark 社區默認的 spark-submit 的提交方式,在 Spark 3.0 之後(當然目前還沒有release),支持以下類型的 ConfigMap。

這些是用戶可以配置的,在 Spark on k8s 的內部運行實現上,也用了一些 ConfigMap 特性帶來的便利,可以通過 describe 命令查看下 Driver Pod 的描述,

比如 spark-conf-volume 這個,就存放了客戶端匯總的所有 spark 相關的配置,默認被 mount 到 /opt/spark/conf/spark.properties 這個位置,然後在 Driver Pod 啟動時,通過 --properties-file 參數指定,也可以通過 describe 命令,我們也可以查看這個 map 的內容

使用 ConfigMap 之前必須先創建,我們可以通過 kubectl create configmap --help 了解這個命令的用法。
ConfigMap 和命名空間是綁定的,創建在對應的命名空間內,後面跑 spark 的時候才能使用。
我們以 spark.kubernetes.hadoop.configMapName 來舉例,我們用來創建ConfigMap 來存儲 HADOOP_CONF_DIR 下的文件。

可以通過上面兩種方式,直接使用路徑 或者 一個文件一個文件來指定

通過 describe 命令可以查看該 ConfigMap 信息。

ConfigMap 的 數據部分,key值對應的是文件的名字,Value對應的是該文件的實際內容。

創建完成後,我們就可以通過將它的名稱,如hz10-hadoop-dir,直接設置給 spark.kubernetes.hadoop.configMapName 就可以使用啦

❾ 請問公司起步建立k8s,需要什麼樣的伺服器配置,多少台伺服器每台怎樣的配置要求

伺服器按自己預算買就行,vCenter HA cluster 的建議是最少三台伺服器。這樣可以實現一個host維護或有問題的時候另一台馬上能補上。k8s就在vcenter里用vm實現。 ⌄這樣的好處是以後有需求的話可以隨意增加伺服器到vcenter里擴展cpu或者存儲能力。
藍海大腦水冷工作站具有高性能,高密度、擴展性強等特點。液冷GPU伺服器產品支持1~20塊 GPU卡,還可以選擇。晶元主要採用龍芯、飛騰、申威、海光、英偉達、Intel、AMD。完全定製啊,敲開心。適配多個存儲卡,適用於深度學習訓練及推理、生命科學、醫葯研發、虛擬模擬等場景,覆蓋伺服器、靜音工作站、數據中心等多種產品形態,量身定製,滿足客戶全場景需求。