部署kubernetes-dashboard改成http免密登錄

原始鏈接地址

https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

修改Service端口

增加80端口,改成http訪問

修改前:

spec:ports:- port: 443targetPort: 8443selector:k8s-app: kubernetes-dashboard

修改后:

spec:ports:- port: 443targetPort: 8443name: https- port: 80targetPort: 9090name: httpselector:k8s-app: kubernetes-dashboard

如果想用 ip+端口 的方式訪問,這里需要增加配置,改成 nodeport 的形式,nodePort 改成自己主機空閑的端口,取值范圍在 apiserver--service-node-port-range 參數里面可以看得到

最終修改如下:

spec:ports:- port: 443targetPort: 8443name: httpsnodePort: 32001- port: 80targetPort: 9090name: httpnodePort: 32002type: NodePortselector:k8s-app: kubernetes-dashboard
修改 deployment 內容
修改探針檢測
  • 后面要修改 dashboard 的啟動參數,這里不改的話,活性檢測會失敗,導致 pod 會不斷重啟

修改前:

          livenessProbe:httpGet:scheme: HTTPSpath: /port: 8443

修改后:

          livenessProbe:httpGet:scheme: HTTPpath: /port: 9090
修改鏡像拉取策略
  • 官方 yaml 里面默認配置的是 Always
sed -i 's/imagePullPolicy: Always/imagePullPolicy: IfNotPresent/g' recommended.yaml
修改容器端口

修改前:

          ports:- containerPort: 8443protocol: TCP

修改后:

          ports:- containerPort: 8443protocol: TCP- containerPort: 9090protocol: TCP
關閉 token 登錄
  • 注釋掉 --auto-generate-certificates 參數

修改前:

          args:- --auto-generate-certificates- --namespace=kubernetes-dashboard# Uncomment the following line to manually specify Kubernetes API server Host# If not specified, Dashboard will attempt to auto discover the API server and connect# to it. Uncomment only if the default does not work.# - --apiserver-host=http://my-address:port

修改后:

          args:# - --auto-generate-certificates- --namespace=kubernetes-dashboard# Uncomment the following line to manually specify Kubernetes API server Host# If not specified, Dashboard will attempt to auto discover the API server and connect# to it. Uncomment only if the default does not work.# - --apiserver-host=http://my-address:port
完整版yaml
# Copyright 2017 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.apiVersion: v1
kind: Namespace
metadata:name: kubernetes-dashboard---apiVersion: v1
kind: ServiceAccount
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard---kind: Service
apiVersion: v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
spec:ports:- port: 443targetPort: 8443name: httpsnodePort: 30000- port: 80targetPort: 9090name: httpnodePort: 30001type: NodePortselector:k8s-app: kubernetes-dashboard---apiVersion: v1
kind: Secret
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-certsnamespace: kubernetes-dashboard
type: Opaque---apiVersion: v1
kind: Secret
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-csrfnamespace: kubernetes-dashboard
type: Opaque
data:csrf: ""---apiVersion: v1
kind: Secret
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-key-holdernamespace: kubernetes-dashboard
type: Opaque---kind: ConfigMap
apiVersion: v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-settingsnamespace: kubernetes-dashboard---kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
rules:# Allow Dashboard to get, update and delete Dashboard exclusive secrets.- apiGroups: [""]resources: ["secrets"]resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs", "kubernetes-dashboard-csrf"]verbs: ["get", "update", "delete"]# Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.- apiGroups: [""]resources: ["configmaps"]resourceNames: ["kubernetes-dashboard-settings"]verbs: ["get", "update"]# Allow Dashboard to get metrics.- apiGroups: [""]resources: ["services"]resourceNames: ["heapster", "dashboard-metrics-scraper"]verbs: ["proxy"]- apiGroups: [""]resources: ["services/proxy"]resourceNames: ["heapster", "http:heapster:", "https:heapster:", "dashboard-metrics-scraper", "http:dashboard-metrics-scraper"]verbs: ["get"]---kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard
rules:# Allow Metrics Scraper to get metrics from the Metrics server- apiGroups: ["metrics.k8s.io"]resources: ["pods", "nodes"]verbs: ["get", "list", "watch"]---apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: kubernetes-dashboard
subjects:- kind: ServiceAccountname: kubernetes-dashboardnamespace: kubernetes-dashboard---apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: kubernetes-dashboard
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: kubernetes-dashboard
subjects:- kind: ServiceAccountname: kubernetes-dashboardnamespace: kubernetes-dashboard---kind: Deployment
apiVersion: apps/v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
spec:replicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s-app: kubernetes-dashboardtemplate:metadata:labels:k8s-app: kubernetes-dashboardspec:securityContext:seccompProfile:type: RuntimeDefaultcontainers:- name: kubernetes-dashboardimage: kubernetesui/dashboard:v2.7.0imagePullPolicy: Alwaysports:- containerPort: 8443protocol: TCP- containerPort: 9090protocol: TCPargs:# - --auto-generate-certificates- --namespace=kubernetes-dashboard# Uncomment the following line to manually specify Kubernetes API server Host# If not specified, Dashboard will attempt to auto discover the API server and connect# to it. Uncomment only if the default does not work.# - --apiserver-host=http://my-address:portvolumeMounts:- name: kubernetes-dashboard-certsmountPath: /certs# Create on-disk volume to store exec logs- mountPath: /tmpname: tmp-volumelivenessProbe:httpGet:scheme: HTTPpath: /port: 9090initialDelaySeconds: 30timeoutSeconds: 30securityContext:allowPrivilegeEscalation: falsereadOnlyRootFilesystem: truerunAsUser: 1001runAsGroup: 2001volumes:- name: kubernetes-dashboard-certssecret:secretName: kubernetes-dashboard-certs- name: tmp-volumeemptyDir: {}serviceAccountName: kubernetes-dashboardnodeSelector:"kubernetes.io/os": linux# Comment the following tolerations if Dashboard must not be deployed on mastertolerations:- key: node-role.kubernetes.io/mastereffect: NoSchedule---kind: Service
apiVersion: v1
metadata:labels:k8s-app: dashboard-metrics-scrapername: dashboard-metrics-scrapernamespace: kubernetes-dashboard
spec:ports:- port: 8000targetPort: 8000selector:k8s-app: dashboard-metrics-scraper---kind: Deployment
apiVersion: apps/v1
metadata:labels:k8s-app: dashboard-metrics-scrapername: dashboard-metrics-scrapernamespace: kubernetes-dashboard
spec:replicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s-app: dashboard-metrics-scrapertemplate:metadata:labels:k8s-app: dashboard-metrics-scraperspec:securityContext:seccompProfile:type: RuntimeDefaultcontainers:- name: dashboard-metrics-scraperimage: kubernetesui/metrics-scraper:v1.0.8ports:- containerPort: 8000protocol: TCP- containerPort: 9090protocol: TCPlivenessProbe:httpGet:scheme: HTTPpath: /port: 8000initialDelaySeconds: 30timeoutSeconds: 30volumeMounts:- mountPath: /tmpname: tmp-volumesecurityContext:allowPrivilegeEscalation: falsereadOnlyRootFilesystem: truerunAsUser: 1001runAsGroup: 2001serviceAccountName: kubernetes-dashboardnodeSelector:"kubernetes.io/os": linux# Comment the following tolerations if Dashboard must not be deployed on mastertolerations:- key: node-role.kubernetes.io/mastereffect: NoSchedulevolumes:- name: tmp-volumeemptyDir: {}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/719097.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719097.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719097.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

snakemake: 基本語法知識點

Snakemake 使用一種基于 Python 的語法來定義工作流,允許用戶編寫規則(rules)來指定數據分析流程中的各個步驟。以下是一些基礎語法知識點,幫助你理解和使用 Snakemake。 1. 規則(Rules) 規則是 Snakemak…

【ROS源碼閱讀】

項目需要研讀ROS源碼,這其中碰到的一些問題記錄一下: 源碼編譯過程 (1) 在ubuntu 18.04 上安裝ROS melodic的版本。 (2) 下載源碼, ROS源碼鏈接: https://github.com/ros/ros_comm/tree/melodic-devel/ros_comm(3) 編譯 例如想…

圖像增強預處理對于深度學習訓練的提高有幫助嗎?

答案:圖像增強預處理對于深度學習訓練非常有幫助,它可以顯著提高模型的性能和泛化能力。 圖像增強包括許多技術,可以通過各種方法改進圖像數據,使其更適合訓練深度學習模型。 可以增加數據集的多樣性,減少模型對特定圖…

書生浦語全鏈路開源體系

推薦閱讀論文 A Survey Of Large Language Models 書生浦語開源的模型 從模型到應用 書生浦語開源體系 書生萬卷開源數據集 除此之外還有OpenDataLab國內數據集下載網站。 預訓練框架InterLM-Train 微調框架XTuner 評測工具體系 國內外常見的大語言模型評測基準&#xff1a…

【JS 算法題: 將 json 轉換為字符串】

題目簡介 其實就是手撕 JSON.stringfy()。 算法實現 輸入 原則上來說,輸入的是一個 json 對象。但需要考慮到異常情況,即輸入了其它類型的數據,比如:12, true, ‘abc’, [‘red’, ‘green’], null, undefined 等。 輸出 …

【比較mybatis、lazy、sqltoy、mybatis-flex、easy-query操作數據】操作批量新增、分頁查詢(三)

orm框架使用性能比較 比較mybatis、lazy、sqltoy、mybatis-flex、easy-query操作數據 環境: idea jdk17 spring boot 3.0.7 mysql 8.0測試條件常規對象 orm 框架是否支持xml是否支持 Lambda對比版本mybatis????3.5.4sqltoy????5.2.98lazy????1.2.4…

鴻蒙實戰項目開發:【短信服務】

概述 本示例展示了電話服務中發送短信的功能。 樣例展示 涉及OpenHarmony技術特性 網絡通信 難度級別 中級 基礎信息 使用ohos.telephony.sms接口展示了電話服務中發送短信的功能。 效果預覽 新建聯系人首頁短信頁 使用說明: 首頁點擊創建聯系人&am…

每日一練:LeeCode-203. 移除鏈表元素 【鏈表+虛擬頭結點】

每日一練:LeeCode-203. 移除鏈表元素 【鏈表虛擬頭結點】 思路設置虛擬頭結點 本文是力扣 每日一練:LeeCode-203. 移除鏈表元素 【鏈表虛擬頭結點】 學習與理解過程,本文僅做學習之用,對本題感興趣的小伙伴可以出門左拐LeeCode-20…

自然語言處理(NLP)中NER如何從JSON數據中提取實體詞的有效信息

專欄集錦,大佬們可以收藏以備不時之需: Spring Cloud 專欄:http://t.csdnimg.cn/WDmJ9 Python 專欄:http://t.csdnimg.cn/hMwPR Redis 專欄:http://t.csdnimg.cn/Qq0Xc TensorFlow 專欄:http://t.csdni…

Nginx 和Tomcat比較

Nginx和Tomcat是兩種不同的技術,它們在應用場景、性能、動態處理能力等方面有所區別: 應用場景 Nginx通常用作靜態內容服務器或代理服務器,可以將外部請求轉發給其他應用服務器,如Tomcat、Django等。而Tomcat則主要用作應用服…

機器學習-面經(part3)

5. 正則化 5.0 手推L1,L2 5.1 什么是正則化,如何理解 定義: 在損失函數后加上一個正則化項(懲罰項),其實就是常說的結構風險最小化策略,即損失函數 加上正則化。一般模型越復雜,正則化值越大。 正則化項是用來對模型中某些參數進行約束,正則化的一般形式如下: 第一項是…

固件和內核驅動

驅動折騰小記 很多人更新了內核,但是自己的外設依然沒有驅動,是因為僅僅更新內核是不夠的,還需要更新固件。 什么是固件? 在許多設備能夠與操作系統通信之前,它們必須首先使用設備制造商提供的“固件”進行初始化。…

實施工程師常遇技術問題

文章目錄 一、對與一個項目,你認為項目的里程碑有哪幾個?二、Tomcat服務器與Resin服務器的區別2.1、開發商和許可證:2.2、部署和配置:2.3、功能和擴展性:2.4、社區和生態系統: 三、版本控制工具SVN與Git的區…

升級openssl

openssl版本一鍵升級(需要修改tar包名稱和路徑) --- - name: Install OpenSSLhosts: openssltasks:- name: Copy OpenSSL tar.gz to /tmpcopy:src: /root/shl/soft/openssl-1.1.1v.tar.gzdest: /tmp # remote_src: yes # 如果源文件在控制主機上…

吳恩達《機器學習》學習筆記

本筆記資料來源于 http://www.ai-start.com/ml2014/,該筆記來自于https://blog.csdn.net/dadapongi6/article/details/105668394,看了忘,忘了看,再看一遍。 時間統計:2024.2.29 5個番茄鐘,從week1開始&…

【PyTorch][chapter 19][李宏毅深度學習]【無監督學習][ GAN]【理論】

前言: 生成對抗網絡(Generative Adversarial Nets,GAN)是一種基于對抗學習的深度生成模型。 2014年,蒙特利爾博士 lan Goodfellow 發表了論文《Generative Adaversarial Networks》, 一經提出便成為了學術…

Python CGI編程

文章目錄 什么是CGICGI架構Web服務器支持及配置CGI程序示例CGI環境變量GET和POST方法GET方法POST方法區別注意事項 使用POST方法傳遞數據1. 創建HTML表單2. 編寫CGI腳本3. 配置服務器4. 提交表單5. 服務器處理請求注意事項 通過CGI程序傳遞checkbox數據創建HTML表單編寫CGI腳本…

二維碼門樓牌管理系統技術服務:門牌編設規則詳解

文章目錄 前言一、門牌編設規則解讀二、區間編號與分段編號策略三、多出入口建筑物的門牌編設 前言 隨著城市化的快速推進,門樓牌管理成為城市管理中不可或缺的一環。二維碼門樓牌管理系統的引入,不僅提升了管理的效率,也為市民提供了更為便…

波奇學Liunx:信號的產生,保存,處理

信號的產生,信號的保存,信號的處理 在操作系統中進程接受到信號會保存,產生 進程必須識別和能夠處理信號,處理信號是進程的內置功能 進程收到信號時不一定會立即執行,所以進程必然有一套識別,保存&#xff…

Leetcode 3066. Minimum Operations to Exceed Threshold Value II

Leetcode 3066. Minimum Operations to Exceed Threshold Value II 1. 解題思路2. 代碼實現 題目鏈接:Leetcode 3066. Minimum Operations to Exceed Threshold Value II 1. 解題思路 這一題的話只需要排序之后按照題目條件逐一進行執行直至滿足條件即可。 唯一…