k8s:離線部署tomcatV11.0.9,報Cannot find /opt/bitnami/tomcat/bin/setclasspath.sh

本文記錄了在離線環境下部署Tomcat容器時遇到的權限問題及解決方案。在Docker環境中運行Tomcat時出現"找不到setclasspath.sh"錯誤,通過添加--security-opt seccomp=unconfined參數解決。在Kubernetes環境中部署時出現相同問題,通過設置containerSecurityContext.seccompProfile.type=Unconfined解決。文章對比了Unconfined和RuntimeDefault兩種seccomp

一、離線環境


CPU:Hygon C86 7285 32-core Processor
操作系統:麒麟操作系統
containerd:1.7.27
Kubernetes:1.26.12
KubeSphere:4.1.2
kubekey:3.1.10
Harbor:2.13.1

二、docker下的現象

執行如下代碼:

docker run -dit \

??--name tomcat \

??-p 8084:8080 \

??-e TOMCAT_USERNAME=admin \

??-e TOMCAT_PASSWORD=Sinops1234 \

??bitnami/tomcat:latest

?報如下錯誤:

Cannot find /opt/bitnami/tomcat/bin/setclasspath.sh

原因:

? ?權限不夠。

解決方案:

docker run -dit \

??--name tomcat \

??-p 8084:8080 \

??--security-opt seccomp=unconfined \

??-e TOMCAT_USERNAME=admin \

??-e TOMCAT_PASSWORD=Sinops1234 \

??bitnami/tomcat:latest

?

特性

apparmor:unconfined

seccomp=unconfined

所屬模塊

AppArmor

seccomp

控制內容

文件路徑、網絡訪問、權限等

系統調用(syscalls)

用途

限制程序對系統資源的訪問

限制程序能執行的底層系統操作

安全影響

更細粒度的訪問控制

防止危險系統調用被執行

默認行為

Docker 會應用默認 AppArmor profile(如果啟用)

Docker 默認啟用 seccomp,限制部分危險 syscall

何時使用

容器無法訪問特定文件或資源

容器因系統調用失敗而崩潰

三、k8s下的現象?

執行如下命令:

helm install tomcat ./tomcat-12.0.0.tgz \

??--namespace default \

??--set image.registry=172.23.123.117:8443 \

??--set image.repository=library/bitnami/tomcat \

??--set image.tag=latest \

??--set image.pullPolicy=IfNotPresent \

--set image.pullSecrets=sinopsreg?\

??--set global.security.allowInsecureImages=false \

??--set usePasswordFiles=false \

??--set existingSecret=tomcat-secrets?\

??--set secretKeys.adminUsernameKey=tomcat-username \

??--set secretKeys.adminPasswordKey=tomcat-password

?

報如下錯誤:

Cannot find /opt/bitnami/tomcat/bin/setclasspath.sh

原因:

? ?權限不夠。

解決方案:

helm install tomcat ./tomcat-12.0.0.tgz \

??--namespace default \

??--set image.registry=172.23.123.117:8443 \

??--set image.repository=library/bitnami/tomcat \

??--set image.tag=latest \

??--set image.pullPolicy=IfNotPresent \

--set image.pullSecrets=sinopsreg?\

??--set global.security.allowInsecureImages=false \

??--set usePasswordFiles=false \

??--set existingSecret=tomcat-secrets?\

??--set secretKeys.adminUsernameKey=tomcat-username \

??--set secretKeys.adminPasswordKey=tomcat-password \

??--set containerSecurityContext.seccompProfile.type=Unconfined

Unconfined:當你設置 seccompProfile.type: Unconfined,這意味著禁用了 Seccomp 安全策略,允許容器內的進程執行所有系統調用。這種方式提供了最大的靈活性,但也降低了安全性。

RuntimeDefault:相比之下,使用 "RuntimeDefault" 提供了一定程度的安全性提升,因為它限制了容器能夠執行的系統調用,減少了潛在攻擊面。

?

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

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

相關文章

Linux操作系統之線程(五):線程封裝

目錄 前言 一、線程ID及進程地址空間布局 二、線程棧與線程局部存儲 三、線程封裝 總結: 前言 我們在上篇文章著重給大家說了一下線程的控制的有關知識。 但是如果我們要使用線程,就得那這pthread_create接口直接用嗎?這樣豈不是太過麻…

【物理與機器學習】從非平衡熱力學到擴散模型

[toc] 0.引子:從非平衡熱力學開始 1.架構簡介 2.反向過程的具體推導與 DDPM 改進摘要:擴散模型將非平衡熱力學的“噪聲注入—去噪逆轉”理念注入生成建模中。DDPM(Denoising Diffusion Probabilistic Models)在 SD2015 的基礎上,通…

Git常用命令詳解:從入門到精通

前言 Git作為當今最流行的分布式版本控制系統,已經成為開發者必備的技能之一。無論你是獨立開發者還是團隊協作,掌握Git的基本操作都能極大提高工作效率。本文將詳細介紹Git的常用命令,幫助你快速上手并精通Git的基本使用。 一、Git基礎概念…

Vue-22-通過flask接口提供的數據使用plotly.js繪圖(一)

文章目錄 1 任務背景 2 Flask提供接口(server.py) 2.1 原始代碼 2.2 跨域問題 3 Vue3獲取數據并渲染Plotly圖表 3.1 新建工程 3.2 程序 3.2.1 index.html(入口) 3.2.2 cpmponents/Plot.vue(子組件) 3.2.3 App.vue(父組件) 3.2.4 main.ts 3.3 展示 4 選擇圖表類型繪圖 4.1 App.v…

【mysql】換主鍵

需求:曲庫表的主鍵錯了,原先設置的是(sang_id),應該設置為(sang_name,singer)聯合主鍵。-- (0)先備份數據,我這里沒備份 -- (1)進行主鍵的切換之前,要進行一些…

Redis原理之緩存

上篇文章: Redis原理之集群https://blog.csdn.net/sniper_fandc/article/details/149141342?fromshareblogdetail&sharetypeblogdetail&sharerId149141342&sharereferPC&sharesourcesniper_fandc&sharefromfrom_link 目錄 1 Redis作為MySQL…

關于集合的底層數據結構

單列集合Collection分為list集合和set集合list集合分為ArrayList和LinkedListArrayList--底層數據結構是數組1.通過索引查詢快2.增刪要重構索引,增刪慢 LinkedList--底層數據結構是鏈表1.無索引查詢慢2.通過改變前節點的尾指針和后節點的前指針指向可快速增刪,增刪快set集合(…

批量插入技巧:減少事務提交次數的性能提升

一、事務提交成本分析每次事務提交觸發?磁盤I/O同步?(WAL機制)、?日志寫入?和?鎖資源釋放?操作,高頻獨立提交會產生指數級開銷?。實驗表明:MySQL提交1萬次單條插入比單次批量插入?慢20倍以上??。高頻提交還加劇鎖競爭與…

importlib.import_module() 的用法與實戰案例

🌟 一、什么是 importlib? importlib 是 Python 的一個內置標準庫,用于在程序運行時 動態導入模塊。 🔤 對比:普通 import vs importlib方式示例特點靜態導入import os編寫代碼時就確定要導入的模塊動態導入importlib.…

Oracle 12c 創建數據庫初級教程

1. 連接到Oracle sqlplus / as sysdba Oracle數據庫名稱默認為ORCL或sqlplus /ORCL as sysdba Oracle數據庫名稱默認為ORCL2. 創建表空間(數據庫) create user YOUR_USERNAME identified by "YOUR_PASSWORD"; YOUR_USERNAME為數據庫名稱和登…

zabbix服務器告警處理

zabbix服務器告警,信息為:Utilization of poller processes over 75%處理辦法為修改zabbix_server.conf配置文件,一般情況下為/etc/zabbix目錄下。根據自己輪詢器的類型修改對應的輪詢器的數量;我這里把StartPollers,S…

隨筆20250721 PostgreSQL實體類生成器

我來幫你創建一個C#程序,從PostgreSQL數據庫讀取表結構并生成對應的實體類文件。我已經創建了一個完整的PostgreSQL實體類生成器。這個程序包含以下主要功能:主要特性數據庫連接: 使用Npgsql連接PostgreSQL數據庫表結構讀取: 自動讀取所有表的結構信息類…

B樹、B-樹與B+樹

B樹、B-tree與B樹 在計算機科學,尤其是數據庫和文件系統的領域中,B樹、B-tree和B樹是理解數據如何被高效存儲和檢索的關鍵。它們之間關系緊密,但功能和應用上又存在著決定性的差異。 一、 核心概念澄清:B樹就是B-tree 首先需要明確…

視頻格式轉換工廠v3.2.5,集音視頻、圖片處理78MB

今天,我們要介紹的是一款功能強大的視頻處理軟件——視頻格式轉換工廠。這款軟件已經完美破解,無需登錄即可享受全部高級功能。它不僅支持視頻格式轉換,還涵蓋了音頻、圖片處理等多種功能,是一款真正的多媒體處理工具。 視頻格式轉…

VUE 中父級組件使用JSON.stringify 序列化子組件傳遞循環引用錯誤

背景 VUE 中父級組件使用JSON.stringify 序列化子組件傳遞的數據會報錯 runtime-core.esm-bundler.js:268 Uncaught TypeError: Converting circular structure to JSON –> starting at object with constructor ‘Object’ — property ‘config’ closes the circle 原因…

HTTP,HTTPS

在網絡工程師、開發工程師、運維工程師等崗位的面試中,??HTTP/HTTPS?? 是高頻必考知識點,尤其在前端、后端、測試、DevOps等與網絡通信相關的職位中。以下是系統化的核心考點梳理,涵蓋基礎概念、協議機制、安全特性及應聘高頻問題。??一…

Nginx訪問日志分析在云服務器環境的技術實現與案例

在云計算時代,Nginx訪問日志分析已成為服務器運維的關鍵環節。本文將深入解析如何通過日志切割、實時監控和可視化展示三大技術路徑,實現云環境下Nginx日志的高效分析。我們將結合具體案例,演示從原始日志到運維決策的完整技術閉環&#xff0…

鴻蒙實現一次上傳多張圖片

記錄初接觸鴻蒙,遇到的一個問題,需求是點擊一個圖片上傳的號圖,訪問本地圖片,可以選擇多張圖片并上傳。下面是圖片上傳后的方法://選擇圖片并上傳private async showPhotoPicker() {const maxImageCount 3;const rema…

【STM32】CRC 校驗函數

先上一下 CRC校驗 的源代碼&#xff1a; void crc_check(unsigned char *ptr,unsigned int len) //crc為開源函數 {unsigned long wcrc0XFFFF;//預置16位crc寄存器&#xff0c;初值全部為1unsigned char temp;//定義中間變量int i0,j0;//定義計數for(i0;i<len;i)//循環計算每…

【Java】SVN 版本控制軟件的快速安裝(可視化)

目錄 一、SVN 的概述 1.1 SVN 的概念 1.2 SVN 與 Git 的對比 1.3 SVN 軟件 二、SVN 的安裝 2.1 SVN 的工作流程 2.2 服務器端 SVN 的安裝 三、SVN 服務器端的配置 3.1 搭建項目 3.2 權限控制 四、SVN 客戶端的配置 4.1 SVN 客戶端的下載 4.2 客戶端連接 SVN 服務器…