CINXE.COM

Scalable and multi-tenant Kubernetes ingress infrastructure - CERN Document Server

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!--[if IEMobile 7]><html class="iem7" xmlns="http://www.w3.org/1999/xhtml" lang="ca" xml:lang="ca" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://ogp.me/ns/fb#"><![endif]--> <!--[if lte IE 6]><html class="ie6 ie6-7 ie6-8" xmlns="http://www.w3.org/1999/xhtml" lang="ca" xml:lang="ca" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://ogp.me/ns/fb#"><![endif]--> <!--[if (IE 7)&(!IEMobile)]><html class="ie7 ie6-7 ie6-8" xmlns="http://www.w3.org/1999/xhtml" lang="ca" xml:lang="ca" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://ogp.me/ns/fb#"><![endif]--> <!--[if IE 8]><html class="ie8 ie6-8" xmlns="http://www.w3.org/1999/xhtml" lang="ca" xml:lang="ca" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://ogp.me/ns/fb#"><![endif]--> <!--[if (gte IE 9)|(gt IEMobile 7)]><!--><html xmlns="http://www.w3.org/1999/xhtml" lang="ca" xml:lang="ca" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://ogp.me/ns/fb#"><!--<![endif]--> <head> <title>Scalable and multi-tenant Kubernetes ingress infrastructure - CERN Document Server</title> <link href='https://framework.web.cern.ch/framework/2.0/fonts/PTSansWeb/PTSansWeb.css' rel='stylesheet' type='text/css' /> <link rel="stylesheet" href="https://cds.cern.ch/img/invenio.css?v=20141127" type="text/css" /> <link rel="stylesheet" href="https://cds.cern.ch/img/cern_theme/css/cern_theme.css?v=20141127" type="text/css" /> <link rel="stylesheet"href="/css/font-awesome.min.css"> <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> <link rel="stylesheet" href="https://cds.cern.ch/img/cern_toolbar/css/toolbar.css" type="text/css" /> <!--[if lt IE 8]> <link href="https://cds.cern.ch/img/cern_toolbar/css/toolbar-ie.css" rel="stylesheet" type="text/css"> <![endif]--> <!--[if lt IE 8]> <link rel="stylesheet" type="text/css" href="https://cds.cern.ch/img/invenio-ie7.css" /> <![endif]--> <!--[if gt IE 8]> <style type="text/css">div.restrictedflag {filter:none;}</style> <![endif]--> <link rel="canonical" href="https://cds.cern.ch/record/2900715" /> <link rel="alternate" hreflang="el" href="https://cds.cern.ch/record/2900715?ln=el" /> <link rel="alternate" hreflang="fr" href="https://cds.cern.ch/record/2900715?ln=fr" /> <link rel="alternate" hreflang="bg" href="https://cds.cern.ch/record/2900715?ln=bg" /> <link rel="alternate" hreflang="zh-TW" href="https://cds.cern.ch/record/2900715?ln=zh_TW" /> <link rel="alternate" hreflang="pt" href="https://cds.cern.ch/record/2900715?ln=pt" /> <link rel="alternate" hreflang="no" href="https://cds.cern.ch/record/2900715?ln=no" /> <link rel="alternate" hreflang="hr" href="https://cds.cern.ch/record/2900715?ln=hr" /> <link rel="alternate" hreflang="ca" href="https://cds.cern.ch/record/2900715?ln=ca" /> <link rel="alternate" hreflang="de" href="https://cds.cern.ch/record/2900715?ln=de" /> <link rel="alternate" hreflang="it" href="https://cds.cern.ch/record/2900715?ln=it" /> <link rel="alternate" hreflang="zh-CN" href="https://cds.cern.ch/record/2900715?ln=zh_CN" /> <link rel="alternate" hreflang="sv" href="https://cds.cern.ch/record/2900715?ln=sv" /> <link rel="alternate" hreflang="sk" href="https://cds.cern.ch/record/2900715?ln=sk" /> <link rel="alternate" hreflang="en" href="https://cds.cern.ch/record/2900715?ln=en" /> <link rel="alternate" hreflang="pl" href="https://cds.cern.ch/record/2900715?ln=pl" /> <link rel="alternate" hreflang="ru" href="https://cds.cern.ch/record/2900715?ln=ru" /> <link rel="alternate" hreflang="ka" href="https://cds.cern.ch/record/2900715?ln=ka" /> <link rel="alternate" hreflang="ja" href="https://cds.cern.ch/record/2900715?ln=ja" /> <link rel="alternate" hreflang="es" href="https://cds.cern.ch/record/2900715?ln=es" /> <link rel="alternate" type="application/rss+xml" title="CERN Document Server RSS" href="/rss?ln=ca" /> <link rel="search" type="application/opensearchdescription+xml" href="https://cds.cern.ch/opensearchdescription" title="CERN Document Server" /> <link rel="unapi-server" type="application/xml" title="unAPI" href="https://cds.cern.ch/unapi" /> <link rel="apple-touch-icon" href="/apple-touch-icon.png"/> <link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-precomposed.png"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Language" content="ca" /> <meta name="description" content="CERN, the European Organization for Nuclear Research, is one of the world's largest centres for scientific research. Not only is it home to the world's largest particle accelerator (Large Hadron Collider, LHC), but it also the birthplace of the Web in 1989. Since 2016, CERN has been using the OpenShift Kubernetes Distribution to host a private platform-as-a-service (PaaS). This service is optimized for hosting web applications and has grown to tens of thousands of individual websites. By now, we have established on a reliable framework that deals with various use cases: thousands of websites per ingress controller (8K+ routes), dealing with long-lived connections (30K+ concurrent sessions) and high traffic applications (25TB+ per day). This session will discuss: * CERN's web hosting infrastructure based on OpenShift Kubernetes clusters; * usage of open source and in-house developed software for providing a seamless user experience; * integrations for registering hostnames (local DNS, LanDB, external) * provisioning of certificates (automatic with external-dns / ACME HTTP-01, manual provisioning) * access control policies and &quot;connecting&quot; different components with OpenPolicyAgent * enforcing unique hostnames across multiple Kuberenetes clustes * strategies for setting up Kubernetes Ingress Controllers for multi-tenant clusters; * methods for scaling and sharding ingress controllers according to the application's requirements (specifically HAProxy ingress controllers); Henschel, Jack" /> <meta name="keywords" content="Information Technology" /> <script type="text/javascript" src="https://cds.cern.ch/js/jquery.min.js"></script> <!-- WebNews CSS library --> <link rel="stylesheet" href="https://cds.cern.ch/img/webnews.css" type="text/css" /> <!-- WebNews JS library --> <script type="text/javascript" src="https://cds.cern.ch/js/webnews.js?v=20131009"></script> <meta property="fb:app_id" content="137353533001720"/> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: {inlineMath: [['$','$']], processEscapes: true}, showProcessingMessages: false, messageStyle: "none" }); </script> <script src="/MathJax/MathJax.js?config=TeX-AMS_CHTML" type="text/javascript"> </script> <!-- GoogleScholar --> <meta content="Scalable and multi-tenant Kubernetes ingress infrastructure" name="citation_title" /> <meta content="Henschel, Jack" name="citation_author" /> <meta content="2024/06/14" name="citation_publication_date" /> <meta name="citation_online_date" content="2024/06/13"> <meta content="IT-TALK-2024-001" name="citation_technical_report_number" /> <meta name="citation_pdf_url" content="https://cds.cern.ch/record/2900715/files/kubernetes-ingress-infrastructure-devconf-cz.pdf" /> <!-- OpenGraph --> <meta content="Scalable and multi-tenant Kubernetes ingress infrastructure" property="og:title" /> <meta content="DevConf.CZ 2024" property="og:title" /> <meta content="website" property="og:type" /> <meta content="website" property="og:type" /> <meta content="https://cds.cern.ch/record/2900715" property="og:url" /> <meta name="twitter:image" content="https://cds.cern.ch/record/2900715/files/kubernetes-ingress-infrastructure-devconf-cz.jpg?subformat=icon-180" /> <meta property="og:image" content="https://cds.cern.ch/record/2900715/files/kubernetes-ingress-infrastructure-devconf-cz.jpg?subformat=icon-180" /> <meta property="og:image:secure_url" content="https://cds.cern.ch/record/2900715/files/kubernetes-ingress-infrastructure-devconf-cz.jpg?subformat=icon-180" /> <meta property="og:image" content="https://cds.cern.ch/record/2900715/files/kubernetes-ingress-infrastructure-devconf-cz.gif?subformat=icon" /> <meta property="og:image:secure_url" content="https://cds.cern.ch/record/2900715/files/kubernetes-ingress-infrastructure-devconf-cz.gif?subformat=icon" /> <meta property="og:image" content="https://cds.cern.ch/record/2900715/files/kubernetes-ingress-infrastructure-devconf-cz.jpg?subformat=icon-180" /> <meta property="og:image:secure_url" content="https://cds.cern.ch/record/2900715/files/kubernetes-ingress-infrastructure-devconf-cz.jpg?subformat=icon-180" /> <meta content="CERN Document Server" property="og:site_name" /> <meta content="CERN, the European Organization for Nuclear Research, is one of the world's largest centres for scientific research. Not only is it home to the world's largest particle accelerator (Large Hadron Collider, LHC), but it also the birthplace of the Web in 1989. Since 2016, CERN has been using the OpenShift Kubernetes Distribution to host a private platform-as-a-service (PaaS). This service is optimized for hosting web applications and has grown to tens of thousands of individual websites. By now, we have established on a reliable framework that deals with various use cases: thousands of websites per ingress controller (8K+ routes), dealing with long-lived connections (30K+ concurrent sessions) and high traffic applications (25TB+ per day). This session will discuss: * CERN's web hosting infrastructure based on OpenShift Kubernetes clusters; * usage of open source and in-house developed software for providing a seamless user experience; * integrations for registering hostnames (local DNS, LanDB, external) * provisioning of certificates (automatic with external-dns / ACME HTTP-01, manual provisioning) * access control policies and &amp;quot;connecting&amp;quot; different components with OpenPolicyAgent * enforcing unique hostnames across multiple Kuberenetes clustes * strategies for setting up Kubernetes Ingress Controllers for multi-tenant clusters; * methods for scaling and sharding ingress controllers according to the application's requirements (specifically HAProxy ingress controllers);" property="og:description" /> <!-- Twitter Card --> <meta content="summary" name="twitter:card" /> <meta content="summary" name="twitter:card" /> <style></style> </head> <body class="IT32Slides search" lang="ca"> <!-- toolbar starts --> <div id="cern-toolbar"> <h1><a href="http://cern.ch" title="CERN">CERN <span>Accelerating science</span></a></h1> <ul> <li class="cern-accountlinks"><a class="cern-account" href="https://cds.cern.ch/youraccount/login?ln=ca&amp;referer=https%3A//cds.cern.ch/record/2900715%3Fln%3Dca" title="Sign in to your CERN account">Sign in</a></li> <li><a class="cern-directory" href="http://cern.ch/directory" title="Search CERN resources and browse the directory">Directory</a></li> </ul> </div> <!-- toolbar ends --> <!-- Nav header starts--> <div role="banner" class="clearfix" id="header"> <div class="header-inner inner"> <hgroup class="clearfix"> <h2 id="site-name"> <a rel="home" title="Home" href="/"><span>CERN Document Server</span></a> </h2> <h3 id="site-slogan">Access articles, reports and multimedia content in HEP</h3> </hgroup><!-- /#name-and-slogan --> <div role="navigation" id="main-navigation" class="cdsmenu"> <h2 class="element-invisible">Main menu</h2><ul class="links inline clearfix"> <li class="menu-386 first active-trail"><a class="active-trail" href="https://cds.cern.ch/?ln=ca">Cerca</a></li> <li class="menu-444 "><a class="" title="" href="https://cds.cern.ch/submit?ln=ca">Lliura</a></li> <li class="menu-426 "><a class="" href="https://cds.cern.ch/help/?ln=ca">Ajuda</a></li> <li class="leaf hassubcdsmenu"> <a hreflang="en" class="header" href="https://cds.cern.ch/youraccount/display?ln=ca">Personalitza</a> <ul class="subsubcdsmenu"><li><a href="https://cds.cern.ch/youralerts/list?ln=ca">Les vostres alertes</a></li><li><a href="https://cds.cern.ch/yourbaskets/display?ln=ca">Els vostres cistells</a></li><li><a href="https://cds.cern.ch/yourcomments?ln=ca">Your comments</a></li><li><a href="https://cds.cern.ch/youralerts/display?ln=ca">Les vostres cerques</a></li></ul></li> </ul> </div> </div> </div> <!-- Nav header ends--> <table class="navtrailbox"> <tr> <td class="navtrailboxbody"> <a href="/?ln=ca" class="navtrail">Pàgina inicial</a> &gt; <a href="/collection/Articles%20%26%20Preprints?ln=ca" class="navtrail">Articles &amp; Preprints</a> &gt; <a href="/collection/CERN%20Internal%20Notes?ln=ca" class="navtrail">CERN Notes</a> &gt; <a href="/collection/IT%20Slides?ln=ca" class="navtrail">IT Slides</a> &gt; Scalable and multi-tenant Kubernetes ingress infrastructure </td> </tr> </table> </div> <div class="pagebody"><div class="pagebodystripemiddle"> <div class="detailedrecordbox"> <div class="detailedrecordtabs"> <div> <ul class="detailedrecordtabs"><li class="on first"><a href="/record/2900715/?ln=ca">Informació: </a></li><li class=""><a href="/record/2900715/comments?ln=ca">Discussió (0) </a></li><li class=""><a href="/record/2900715/files?ln=ca">Fitxers </a></li></ul> <div id="tabsSpacer" style="clear:both;height:0px">&nbsp;</div></div> </div> <div class="detailedrecordboxcontent"> <div class="top-left-folded"></div> <div class="top-right-folded"></div> <div class="inside"> <!--<div style="height:0.1em;">&nbsp;</div> <p class="notopgap">&nbsp;</p>--> <abbr class="unapi-id" title="2900715"></abbr> <style type="text/css"> <!-- ul.detailedrecordtabs li.on a{background-color:#4D94CC;color:#fff !important;border-bottom:1px solid #4D94CC!important;} div.detailedrecordboxcontent {padding-top:0px !important;} --> </style> <table class="formatRecordTableFullWidth"> <tr> <td class="formatRecordHeader" style="background-image: url('https://cds.cern.ch/img/journals.jpg');" colspan="2"> <!--YTD: record may have more than one 690C.a tag--> </td> </tr> <tr><td class="formatRecordLabel"> Report number </td><td style="padding-left:5px;">IT-TALK-2024-001</td></tr> <tr><td class="formatRecordLabel"> Title </td><td style="padding-left:5px;"><b>Scalable and multi-tenant Kubernetes ingress infrastructure</b></td></tr> <tr><td class="formatRecordLabel"> Category </td><td style="padding-left:5px;">Talk</td></tr> <tr><td class="formatRecordLabel"> <span style="white-space:nowrap;">Author(s)</span> </td><td style="padding-left:5px;"> <a href="https://cds.cern.ch/search?f=author&amp;p=Henschel%2C%20Jack&amp;ln=ca">Henschel, Jack</a> (CERN) </td></tr> <tr><td class="formatRecordLabel"> Group </td><td style="padding-left:5px;">PW</td></tr> <tr><td class="formatRecordLabel"> Imprint </td><td style="padding-left:5px;">2024-06-14</td></tr> <tr><td class="formatRecordLabel"> Note </td><td style="padding-left:5px;"><a href="https://pretalx.com/devconf-cz-2024/talk/PXU8PP/">https://pretalx.com/devconf-cz-2024/talk/PXU8PP/</a></td></tr> <tr><td class="formatRecordLabel">Presented at</td><td style="padding-left:5px;"><a href="https://www.devconf.info/cz/">DevConf.CZ 2024</a>, Brno, Czech Republic, 13-15 June 2024</td></tr> <tr><td class="formatRecordLabel"> Keywords </td><td style="padding-left:5px;"><a href="https://cds.cern.ch/search?f=keyword&p=Information%20Technology&amp;ln=ca">Information Technology</a></td></tr> <tr><td class="formatRecordLabel"> Abstract </td><td style="padding-left:5px;">CERN, the European Organization for Nuclear Research, is one of the world's largest centres for scientific research. Not only is it home to the world's largest particle accelerator (Large Hadron Collider, LHC), but it also the birthplace of the Web in 1989. Since 2016, CERN has been using the OpenShift Kubernetes Distribution to host a private platform-as-a-service (PaaS). This service is optimized for hosting web applications and has grown to tens of thousands of individual websites. By now, we have established on a reliable framework that deals with various use cases: thousands of websites per ingress controller (8K+ routes), dealing with long-lived connections (30K+ concurrent sessions) and high traffic applications (25TB+ per day). This session will discuss: * CERN's web hosting infrastructure based on OpenShift Kubernetes clusters; * usage of open source and in-house developed software for providing a seamless user experience; * integrations for registering hostnames (local DNS, LanDB, external) * provisioning of certificates (automatic with external-dns / ACME HTTP-01, manual provisioning) * access control policies and &quot;connecting&quot; different components with OpenPolicyAgent * enforcing unique hostnames across multiple Kuberenetes clustes * strategies for setting up Kubernetes Ingress Controllers for multi-tenant clusters; * methods for scaling and sharding ingress controllers according to the application's requirements (specifically HAProxy ingress controllers);</td></tr> </table> <br/>Email contact: <a href="mailto:jack.henschel@cern.ch">jack.henschel@cern.ch</a> <br/><div><div style="clear: both;">&nbsp;</div></div> <script type="text/javascript"> // Initially hide: $(".longCaption").hide(); // Allow to toggle visibility: $(".toggleLongCaption").toggle(function(){ $(this).siblings(".longCaption").show('fast'); var thisElem = $(this); thisElem.text(thisElem.text() === "més" ? "menys" : "més"); },function(){ $(this).siblings(".longCaption").hide('fast'); var thisElem = $(this); thisElem.text(thisElem.text() === "més" ? "menys" : "més"); }); </script> <br/> <br/><br/><div align="right"><div style="padding-bottom:2px;padding-top:30px;"><span class="moreinfo" style="margin-right:10px;"> <a href="" class="moreinfo">Torna a la cerca</a> </span></div></div> <div class="bottom-left-folded"><div class="recordlastmodifiedbox" style="position:relative;margin-left:1px">&nbsp;Registre creat el 2024-06-13, darrera modificació el 2024-06-14</div></div> <div class="bottom-right-folded" style="text-align:right;padding-bottom:2px;"> <span class="moreinfo" style="margin-right:10px;"><a href="/search?ln=ca&amp;p=recid%3A2900715&amp;rm=wrd" class="moreinfo">Registres semblants</a></span></div> </div> </div> </div> <br/> <br /> <div class="detailedrecordminipanel"> <div class="top-left"></div><div class="top-right"></div> <div class="inside"> <div id="detailedrecordminipanelfile" style="width:33%;float:left;text-align:center;margin-top:0"> <div><small class="detailedRecordActions">Text complet:</small> <br /><a href="/record/2900715/files/kubernetes-ingress-infrastructure-devconf-cz.pdf"><img style="border:none" src="/img/file-icon-text-34x48.gif" alt="Descarregar el text complet" /><br />PDF</a><br /></div> </div> <div id="detailedrecordminipanelreview" style="width:30%;float:left;text-align:center"> </div> <div id="detailedrecordminipanelactions" style="width:36%;float:right;text-align:right;"> <ul class="detailedrecordactions"> <li><a href="/yourbaskets/add?ln=ca&amp;recid=2900715">Afegeix-lo al cistell personal</a></li> <li>Anomena i desa <a style="text-decoration:underline;font-weight:normal" href="/record/2900715/export/hx?ln=ca">BibTeX</a>, <a style="text-decoration:underline;font-weight:normal" href="/record/2900715/export/hm?ln=ca">MARC</a>, <a style="text-decoration:underline;font-weight:normal" href="/record/2900715/export/xm?ln=ca">MARCXML</a>, <a style="text-decoration:underline;font-weight:normal" href="/record/2900715/export/xd?ln=ca">DC</a>, <a style="text-decoration:underline;font-weight:normal" href="/record/2900715/export/xe?ln=ca">EndNote</a>, <!-- <a style="text-decoration:underline;font-weight:normal" href="/record/2900715/export/xe8x?ln=ca">EndNote (8-X)</a>,--> <a style="text-decoration:underline;font-weight:normal" href="/record/2900715/export/xn?ln=ca">NLM</a>, <a style="text-decoration:underline;font-weight:normal" href="/record/2900715/export/xw?ln=ca">RefWorks</a> </li> </ul> <div style='padding-left: 13px;'> <!-- JQuery Bookmark Button BEGIN --> <div id="bookmark"></div> <div id="bookmark_sciencewise"></div> <style type="text/css"> #bookmark_sciencewise, #bookmark {float: left;} #bookmark_sciencewise li {padding: 2px; width: 25px;} #bookmark_sciencewise ul, #bookmark ul {list-style-image: none;} </style> <script type="text/javascript" src="/js/jquery.bookmark.min.js"></script> <style type="text/css">@import "/css/jquery.bookmark.css";</style> <script type="text/javascript">// <![CDATA[ $.bookmark.addSite('sciencewise', 'ScienceWise.info', 'https://cds.cern.ch/img/sciencewise.png', 'en', 'bookmark', 'http://sciencewise.info/bookmarks/cds:2900715/add'); $('#bookmark_sciencewise').bookmark({sites: ['sciencewise']}); $('#bookmark').bookmark({ sites: ['facebook', 'twitter', 'linkedin', 'google_plusone'], icons: '/img/bookmarks.png', url: 'https://cds.cern.ch/record/2900715', addEmail: true, title: "Scalable and multi-tenant Kubernetes ingress infrastructure", description: "CERN, the European Organization for Nuclear Research, is one of the world\'s largest centres for scientific research. Not only is it home to the world\'s largest particle accelerator (Large Hadron Collider, LHC), but it also the birthplace of the Web in 1989. Since 2016, CERN has been using the OpenShift Kubernetes Distribution to host a private platform-as-a-service (PaaS). This service is optimized for hosting web applications and has grown to tens of thousands of individual websites. By now, we have established on a reliable framework that deals with various use cases: thousands of websites per ingress controller (8K+ routes), dealing with long-lived connections (30K+ concurrent sessions) and high traffic applications (25TB+ per day). This session will discuss: * CERN\'s web hosting infrastructure based on OpenShift Kubernetes clusters; * usage of open source and in-house developed software for providing a seamless user experience; * integrations for registering hostnames (local DNS, LanDB, external) * provisioning of certificates (automatic with external-dns / ACME HTTP-01, manual provisioning) * access control policies and \"connecting\" different components with OpenPolicyAgent * enforcing unique hostnames across multiple Kuberenetes clustes * strategies for setting up Kubernetes Ingress Controllers for multi-tenant clusters; * methods for scaling and sharding ingress controllers according to the application\'s requirements (specifically HAProxy ingress controllers);" }); // ]]> </script> <!-- JQuery Bookmark Button END --> </div> </div> <div style="clear:both;margin-bottom: 0;"></div> </div> <div class="bottom-left"></div><div class="bottom-right"></div> </div> </div></div> <footer id="footer" class="pagefooter clearfix"> <!-- replaced page footer --> <div class="pagefooterstripeleft"> CERN Document Server&nbsp;::&nbsp;<a class="footer" href="https://cds.cern.ch/?ln=ca">Cerca</a>&nbsp;::&nbsp;<a class="footer" href="https://cds.cern.ch/submit?ln=ca">Lliura</a>&nbsp;::&nbsp;<a class="footer" href="https://cds.cern.ch/youraccount/display?ln=ca">Personalitza</a>&nbsp;::&nbsp;<a class="footer" href="https://cds.cern.ch/help/?ln=ca">Ajuda</a>&nbsp;::&nbsp;<a class="footer" href="https://cern.service-now.com/service-portal?id=privacy_policy&se=CDS-Service" target="_blank">Privacy Notice</a> <br /> Powered by <a class="footer" href="http://invenio-software.org/">Invenio</a> <br /> Mantingut per <a class="footer" href="https://cern.service-now.com/service-portal?id=service_element&name=CDS-Service">CDS Service</a> - Need help? Contact <a href="https://cern.service-now.com/service-portal?id=service_element&name=CDS-Service">CDS Support</a>. <br /> </div> <div class="pagefooterstriperight"> <div class="cern-logo"> <a id="logo" href="http://cern.ch" title="CERN" rel="CERN" ><img src="https://cds.cern.ch/img/cern_theme/img/cern-logo-large.png" alt="CERN" /></a> </div> <div class="cern-languagebox"> Aquest lloc està també disponible en els següents idiomes:<br /><a href="/record/2900715?ln=bg" class="langinfo">Български</a> &nbsp;<span class="langinfo">Català</span> &nbsp;<a href="/record/2900715?ln=de" class="langinfo">Deutsch</a> &nbsp;<a href="/record/2900715?ln=el" class="langinfo">Ελληνικά</a> &nbsp;<a href="/record/2900715?ln=en" class="langinfo">English</a> &nbsp;<a href="/record/2900715?ln=es" class="langinfo">Español</a> &nbsp;<a href="/record/2900715?ln=fr" class="langinfo">Français</a> &nbsp;<a href="/record/2900715?ln=hr" class="langinfo">Hrvatski</a> &nbsp;<a href="/record/2900715?ln=it" class="langinfo">Italiano</a> &nbsp;<a href="/record/2900715?ln=ja" class="langinfo">日本語</a> &nbsp;<a href="/record/2900715?ln=ka" class="langinfo">ქართული</a> &nbsp;<a href="/record/2900715?ln=no" class="langinfo">Norsk/Bokmål</a> &nbsp;<a href="/record/2900715?ln=pl" class="langinfo">Polski</a> &nbsp;<a href="/record/2900715?ln=pt" class="langinfo">Português</a> &nbsp;<a href="/record/2900715?ln=ru" class="langinfo">Русский</a> &nbsp;<a href="/record/2900715?ln=sk" class="langinfo">Slovensky</a> &nbsp;<a href="/record/2900715?ln=sv" class="langinfo">Svenska</a> &nbsp;<a href="/record/2900715?ln=zh_CN" class="langinfo">中文(简)</a> &nbsp;<a href="/record/2900715?ln=zh_TW" class="langinfo">中文(繁)</a> </div> </div> <!-- replaced page footer --> </footer> <script type="text/javascript"> var SyndeticsBookCovers = (function() { var SMALL_SIZE = "sc.gif", MEDIUM_SIZE = "mc.gif", RAW_URL = "https://secure.syndetics.com/index.aspx?isbn=THEISBN/THESIZE&client=cernlibrary"; replaceCover = function(imgElement, isbns, hdFormat) { var img = new Image(), size = hdFormat ? MEDIUM_SIZE : SMALL_SIZE; var _isbns = isbns.sort(function(a, b) { // sort from shortest to longest ISBN (more modern) return a.length > b.length ? 1 : -1; }); function next() { var isbn = _isbns.pop(); if (isbn) { var url = RAW_URL.replace("THEISBN", isbn).replace("THESIZE", size); img.src = url; } } function done() { imgElement.src = img.src; } img.onload = function() { if (this.width > 1) { done(); } else { next(); } }; next(); }; return { replaceCover: replaceCover }; })(); $(document).ready(function() { // get book covers $("img.book-cover").each(function() { var $this = $(this), strIsbns = $this.data("isbns") || "", isbnsArray = String(strIsbns).split(","), hdFormat = $this.hasClass("hd"); SyndeticsBookCovers.replaceCover(this, isbnsArray, hdFormat); }); // WebNews tooltips $.ajax({ url: "/news/tooltips", success: function(data) { create_tooltips(data); }, dataType: "json", cache: false }); }); </script> <!-- Feedback script --> <script src="//cds.cern.ch/js/feedback.js"></script> <!-- Feedback script --> <!-- Matomo --> <script> var _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="https://webanalytics.web.cern.ch/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '756']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script> <!-- End Matomo Code --> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10