V24.2.4에 핀 CockroachDB는 v24.3 no-license txn throttle을 피하기 위해
v24.3 (과 24.2.5+) 새로운 CockroachDB 소프트웨어 라이센스를 시행; 없음 라이센스 키 클러스터 스로틀 5 동시 개방 거래 클러스터 v24.3.33 이미지 범프 (2026-06-30)는 플랫폼 전체를 발생 만료된 30일의 은혜 기간이 만료될 때 2026-07-26에 ...
Pin RDP 색깔 심도 + reap xrdp 회의 그래서 신은 1개의 데스크탑을 재사용합니다
xrdp 0.9.24 키 세션 <user,bpp> (Policy=default) 및 결코 다시 aps 분리된 것 (KillDisconnected=false, DisconnectedTimeLimit=0). RDP 사용자 항상 sage이지만 색 심도가 비싸지 않았으므로 협상 된 bpp를 로...
종료/오판된 비밀 shadowing live per-host certs
update tls store()는 일반 비밀 목록에서 TLSStore를 다시 만들어 버킷 이름 접두사 및 유형에서만, 인증서가 여전히 소유 한 확인 비밀과 notAfter의 체크. wildcard-kamocrm-com은 make host certificate()가 다시 지정되었을 때...
Explicit 우선 순위 그래서 OTA 업데이트 경로는 일반 테마 경로에 승리
Traefik는 규칙 문자열 길이에 의해 순위; 일반 /public / 테마 경로는 더 길다, 그래서 expo-updates 헤더 주입 결코 ran. 우선 순위:100000 승리.
Guacamole 메모리를 올려 1Gi→2Gi OOM 중간 RDP-session
톰캣 webapp idles ~ 800Mi 근처, 그래서 1Gi 천장은 거의 없다 헤드룸. RDP 세션을 열고 1Gi와 컨테이너에 RSS를 밀어 OOMKilled (exit 137) 중간 소유, 브라우저 터널을 눈물 and surfacing Guacamole's generic "an 오...
MinIO FUSE 마운트를 로컬 디스크로 이동
rspamd의 /var/lib/rspamd는 rclone FUSE 산에 의해 hostPath 백업되었습니다 MinIO 공유 파일 물통. 모든 hyperscan recompile /지도 새로 고침 rewrote 파일, orphaning 지우기 데이터 부품 및 Wedging MinIO ~1...
/dev/shm 2Gi (헤드리스 크롬 필요 >=2GB) + 6Gi mem 한계
Jibri 's 10-config init aborts 와 '/dev/shm 해야 적어도 2GB' shm 이다 512Mi, 기록병 충돌. tmpfs를 2Gi 및 메모리 제한으로 밀어 그것을 적합하는 6Gi. 이것은 왜 지브리가 실제로 실행되지 않았습니다.
Correct Guacamole 브랜딩 현 버전 필드
Manifest 사용된 guacManifestVersion:1.0; 묶인 연장 사용 guacamoleVersion. 잘못 된 필드는 Guacamole이 브랜딩 확장을 거부합니다 ('읽을 수없는 확장). guacamoleVersion 사용: 1.5.5.
팟 네트워크 (MTU 수정) + unicast WoL에 guacd 이동
hostNetwork (k1m1 eno49 MTU 1500) 대 guacamole pod on cilium 오버레이 (MTU 1420) : RDP 연결되었지만 대형 프레임은 경계를 가로 질러 떨어졌다 -> 'Guacamole 프로토콜 위반' -> BOTH 연결에서 클라이언트 타임 아웃....
IngressRoutes에 대한 데스크탑 네임스페이스 보기
데스크탑.kamocrm.com IngressRoute는 데스크톱 ns에 살고 있지만 Traefik의 CRD 공급자는 단지 감시했습니다 *********** — 이렇게 노선 무시하고 요청은 kamo-nowww로 떨어졌다. 바탕 화면을 watched에 추가 네임스페이스.
Filesystem로 가져 오기 VM 디스크, 블록이 아닌
CDI의 블록 importer 충돌: 'blockdev: 열 수 없습니다 /dev/cdi-block-volume: Permission denied' — 그것은 익지않는 Longhorn 구획 장치에 접근할 수 없습니다. 파일시스템 volumeMode는 disk.img로 클라우드 이미지를 ...
Correct KubeVirt VM 클라우드 입력 필드 + spec을 현대화
- cloudInitNoCloud userdata secret 필드는 'secretRef' (UserDataSecretRef); KubeVirt v1.8.4 잘못된 필드를 실행 -> 'must는 적어도 하나의 userdatasource' - runStrategy : 항상 deprecat...
Proactively 제공 브라우저 전용 별칭 (media.*)
Log-scan discovery 메커니즘은 `media`alias: it를 부팅 할 수 없습니다. WebSocket/XHR 하위 리소스에 대한 브라우저에 의해서만 연락 (SockJS /ws/info는 softphone/chat/sms/realtime 걸이에서). cert 없이, 브라우...
Correct FPBXCONF heredoc + 우주 스크릴라를 재구성
- freepbx: FPBXCONF 여기에 문서 닫는 delimiter는 indented (8개의 공간); bash는 요구합니다 <<열 0의 WORD delimiters, 그래서 start.sh는 '파일의 끝'과 freepbx로 사망 CrashLoopBackOff'd (340 재시작)....
Pin kamo traefik에 k1m1; 자동 cert 단일 클러스터
SSL 오류 : kamo Traefik은 외부 IP 192.168.4.22 (k1m1) +가있는 LoadBalancer입니다. externalTrafficPolicy=Local, 그래서 k1m1에서 실행되는 MUST — pod rebalance는 k3m1로 이동, 떠나 192.168.4...
Indent heredoc body 그래서 start.sh configmap은 YAML을 유효합니다
Start.sh 블록 사기 임베디드 5 쉘 heredocs (rtp.conf, http.conf, SQL block, WebRTC endpoints, freepbx.conf) 그 몸은 열 0에서 sat - 보다 적은 indented 블록 사기, 그래서 YAML은 첫 번째 바디 라인에 사...
Dovecot maildirs를 로컬 경로 PVC로 이동 (rclone/MinIO FUSE)
Maildirs는 hostPath /mnt/shared-files/email/mail에 있었습니다 — rclone FUSE 산 maildir를 안전하게 호스트할 수 없는 MinIO 객체 저장소에 의해 백업됨(atomic no atomic 이름, 파일 잠금 없음, fsync 내구성 없음....
Rclone/MinIO FUSE 대신에 국부적으로 환원 PVC에 MySQL datadir를 두십시오
Mail MySQL datadir (과 maildirs)는 hostPath /mnt/shared-files에 있었습니다. rclone FUSE 마운트는 MinIO 객체 저장소에 의해 백업, 이는 크게 또는 지속적으로 InnoDB datadir를 호스트합니다. 2026-06-13에 마운트...
백업 확인 작업 - DB-scoped 백업, MinIO 지역 us-west-ca-s-1, EXTERNALIOIMPLICITACCESS 부트 스트랩
로키 6.x SingleBinary는 0개의 확장 가능한 표적을 필요로 합니다; localhost (cert SANs)를 통해 crdb 실행
새로 발행된 certs가 TLSStore를 새로 출시했습니다
update tls store() ran at start and on shared-storage imports, 그래서 cert-manager (HTTP-01)가 신선하게 발행 한 cert는 tls-* secret로 준비되었습니다. 하지만 다음 자동 종료까지 TLSStore에 추가하지 ...
리디렉트로만 루트를 backend so Traefik v3를 사용하면
Traefik v3는 IngressRoute 라우터를 서비스로 비활성화합니다. [] 언제 allowEmptyServices는 (이러한대로), 그래서 도메인 aagnostic HTTP->HTTPS 리디렉션 라우터는 "disabled" (서비스가 존재하지 않습니다) 그리고 포트 80 여전히...
모든 HTTP 호스트를 HTTPS + 게이트 auto-cert로 이동 org 도메인
Custom org 도메인(예: login.sign.pink)은 Traefik의 bare를 반환합니다. 일반 HTTP에 "404 페이지": 유일한 port-80 리디렉션 라우터 *.kamocrm.com 및 ***********에 하드 코딩 배포 작업 흐름에 의해 적용되지 않았으므로 클러...
Subdomains를 위한 가득 차있는 FQDN는 2개의 상표 보다는 더 깊습니다
configure by root()는 첫 번째 라벨과 마지막 두 가지만 추출했습니다. 각 Traefik-l 로그 호스트 이름의 라벨. 일반적인 2단계 경우 (login.b11capital.com -> 루트 b11capital.com, 하위 로그인) 이 왕복 견적 요청 그러나 더 깊은 호...
외부 매체를 위한 새로운 공중 IP 47.181.8.83 광고
JVB-k1m1는 75.83.113.11를 광고하고 coturn는 광고되었습니다 status.hostIP를 통해 노드의 LAN IP - 이제 외부 WebRTC 미디어를 파기 WAN은 47.181.8.83이다.
그룹화 된 에코를 가진 heredoc를 대체하십시오 그래서 YAML 리터 블록 파스
/etc/odbc.ini heredoc body sat 에 열 1, 에 dedented 아웃 의 주변 스타트.sh: | 리터블록 사기꾼과 broke `kubectl apply` ConfigMap의. 입력된 블록 내부의 `echo`s를 그룹화 YAML 범위 안에 각 선 체재. 배포 서비스...
HostToContainer 마운트 propagation을 통해 rclone remount를 따르십시오
노예 propagation 없이 pod는 FUSE 묶음 산을 한 번에 붙듭니다 콘테이너 시작; rclone 산 경우에. 호스트에 재시작, pod 지금 환불 FUSE 연결과 모든 쓰기에서 지적 유지 /mnt/shared-files는 ENOTCONN (Transport 엔드포인트는 아닙니다...
Sync + runtime 트래픽을 흡수하는 2개의 복제물에 가늠자
단일 복제는 사전 동기화 워크플로우의 병목입니다. 각 gunicorn 노동자는 1개의 요구 그 후에 자동 나머지를 취급합니다 (~5-10s 연결 주입의 창), 그리고 2-CPU 한계 모자 inference 관련 제품 런타임 콜러와 12k-string sync 타격 모두 같은 인스턴스, ...
인식되지 않는 드롭 --workers는 충돌을 유발
Libretranslate CLI는 받아지지 않습니다 --workers, gunicorn 내부 프로세스. 파드가 실패한 것을 막기 위해 부팅 및 CrashLoopBackOff (1384 k1m1)에 5d에서 다시 시작합니다. 본문 바로가기 이미 4개의 sync 노동자에 기본적으로, re...
Probe timeout 10s and 2 gunicorn workers
LibreTranslate's /languages probe blocks on the gunicorn worker event loop. With a single worker translating a long chat message, the probe times out at the def...
Rewrite /etc/odbc.ini to point at $MARIADB_HOST on every boot
The escomputers/freepbx:17 image bakes /etc/odbc.ini with Server=db (the docker-compose link target). On this Kubernetes deployment MariaDB lives at \$MARIADB_H...
STUN을 구성하므로 브라우저 ICE는 양방향으로 완료할 수 있습니다
SIP 레이어에 연결된 2자 브라우저 - 투 - 브라우져 통화는 없지만 오디오 중 방향. Voicemail (편도 Asterisk → 브라우저) 일 Asterisk의 비대칭 RTP가 브라우저를 배울 수 있기 때문에 inbound 패킷의 주소. 2 파티 브리징은 양측을 필요로한다. RTP...
내부에 브라우저 SIP WSS를 호스팅합니다.kamocrm.com (실제 cert)
브라우저는 웹소켓 연결을 거부 *********** Traefik이 자체 서명 된 기본 cert를 제공했기 때문에 가까운 코드 1006 hostname에 대해 ( Let's Encrypt cert가 포함되지 않음) 다른 kamocrm.com 엔드 포인트). 컬은 우리가 시험하기 때문에 ...
WebRTC config는 pod 재시작을 살아
이전 접근법 (http custom.conf 와 [general] override) 하지 않았다 실제로 Asterisk의 INI 파서가 여러 가지를 존중하지 않기 때문에 효과가 발생합니다. [general] 섹션은 docs가 불행하게도 다음과 같은 방법을 포함합니다. http addit...
Enable Asterisk 내장 HTTP 서버:8089 WebRTC /ws
Res http websocket의 상단에 chan pjsip `protocol=ws` 수송 승차, 턴에는 Asterisk의 내장 HTTP 서버가 실행되어야 합니다. 더 보기 기본적으로 FreePBX 17는 그 서버가 비활성화된 배를 설치하므로 SIP-over-WS 요청 착륙 nowhe...
ClusterIP 서비스에 직접 8088 노출
서비스는 항구 80→8088 매핑이 있었습니다. 내부 서비스 *************** (예: VOIPService API 토큰 요청) 포트 8088가 듣지 않았기 때문에 타이밍되었습니다. 클러스터IP.
K1m1에 대한 누락된 고장2ban-config ConfigMap 추가
배포 참조 실패2ban-config ConfigMap (jail.local + asterisk-security.conf) 하지만 존재 하지 않았다, 팟을 차단 마운트볼륨. 시작에서 FreePBX를 설정하고 방지합니다.
허용 /domain / 경로는 테마 IngressRoute에 CORS
Theme.kamocrm.com/domain/...에서 테마 구성은 일치하지 않았습니다 기존의 경로 규칙(만 /public/ 및 /internal/은 허용), 그래서 Traefik CORS 헤더가없는 503를 돌려 브라우저가 fetch를 거부합니다. PathPrefix('/domain/...
Piper TTS (en US-norman-medium)를 가진 Coqui TTS를 대체하십시오
Coqui VCTK 모델에는 지명 된 스피커가 없습니다. - Piper TTS와 교체하십시오. 정확한 norman[medium] 음성. Piper 바이너리 (~3 MB) 및 모델 (~60 MB) 첫 번째 실행 및 캐시에 init 컨테이너에 의해 다운로드 /var/lib/piper/{bi...
Split-DNS / LAN 클라이언트 RTP 수정에 대한 local net 추가
K1m1과 같은 LAN의 전화는 분할 DNS를 통해 연결 (도메인은 해결 192.168.4.22 내부). local net없이, Asterisk는 여전히 광고 SDP에서 LAN 클라이언트에 외부 도메인, 공공 IP를 통해 RTP 라우팅. local net=192.168.4.0/24 은 ...
Persist sorcery contact=memory 수정 및 start.sh에서 SIP 스캐너 차단
- [res pjsip] contact=memory as sorcery.conf 앞에 Asterisk 시작; 기본적으로 sorcery-astdb SQLite는 조용히 모든 REGISTER 연락처를 삭제 - 팟 스타트에서 iptables를 통해 알려진 SIP 스캐너 87.246.54.22...
로컬 /var/lib/pbx에 hostPath를 이동
Rclone FUSE를 통해 MinIO는 POSIX chmod 또는 symlink()를 지원하지 않습니다. FreePBX의 모듈 시스템에 의해 요구되는. 모든 FreePBX 및 MariaDB 변경 /mnt/shared-files/pbx/에서 /var/lib/pbx/로 hostPath 볼...
MinIO FUSE hostPath를 위한 PHP를 통해 포장 fwconsole/amportal
/var/lib/asterisk는 지원하지 않는 rclone FUSE를 통해 MinIO에 의해 역행됩니다 POSIX chmod, 그래서 fwconsole 스크립트는 그 볼륨에 실행할 수 없습니다. start.sh는 이제 ephemeral /usr/local/bin의 래퍼 스크립트를 생성...
PreStop 후크 및 종료GracePeriodSeconds 추가
컨테이너는 배경 Asterisk 때문에 종료에 갇혀 있었다 apache2ctl (PID 1) 종료 후 실행되는 프로세스. preStop 걸이는 보냅니다 Kubernetes가 컨테이너를 죽이기 전에 Asterisk에 SIGTERM, 깨끗한 포트 릴리즈 및 포트 사용 오류 타격에서 다음 팟...
Bootstrap.php 추가 /etc/freepbx.conf 재생
Installer는 datasource='와 require once로 freepbx.conf를 작성합니다. bootstrap.php의 경우, config.php는 FreePBX 클래스를로드하는 데 따라 다릅니다. 재생 된 버전은 모두 누락되었습니다. "Class FreePBX는 찾을 수...
재시작 /etc/freepbx.conf
/etc는 ephemeral (hostPath), 그래서 /etc/freepbx.conf에 의해 작성된 installer는 각 pod 재시작에 손실됩니다. 다른 지점을 재생 그것은 env vars 때 bootstrap.php 이미 존재, 그래서 관리자 UI 수 있습니다 MariaDB에 ...
Bypass start asterisk, 대신 제어 소켓을 기다립니다
start asterisk는 pod에 false 긍정적을 반환하는 `pidof asterisk`를 사용합니다. 다시 시작, 대기 - Asterisk 루프를 걸기 위해. 지금 start.sh 시작 Safe asterisk를 통해 직접 Asterisk ( stale 소켓 / pid 파일 삭...
배경에서 Asterisk를 시작, 그것을 기다리고, 다음 설치 프로그램을 실행
Entrypoint.sh는 FreePBX 설치 프로그램을 실행하지 않습니다 - 그것은 단지 시작 서비스. start.sh 이제 엔트리포인트 설정 단계를 복제, 시작 배경에 Asterisk는, 그것의 소켓을 준비하기 위하여 기다립니다, 그 후에 달립니다 php는 첫 번째 부팅이라면 아파치...
