Install KubeFlow locally

 Kubeflow is to MLOps as Kubernetes is to DevOps. Learn how to install it locally to test it out and see if it’s right for you. MLOps, like its older sibling, DevOps, is a hard problem. And what do engineers do, when faced with hard problems? They create tools to simplify those problems into manageable chunks. Typical DevOps problems were simplified by using containers, such as Docker. As projects used more and more containers, a container orchestrator, like Kubernetes (K8s) became a necessity. As each problem arose, developers and engineers created amazing solutions to simplify DevOps. MLOps is going through similar growing pains that DevOps did. You can use Docker and K8s for MLOps, but these get you only so far. MLOps is like a specialized form of DevOps and as such, potentially has different needs or problems. That’s where Kubeflow… Leggi tuttoInstall KubeFlow locally

Selecting Performance Monitoring Tools

System monitoring is a helpful approach to provide the user with data regarding the actual timing behavior of the system. Users can perform further analysis using the data that these monitors provide. One of the goals of system monitoring is to determine whether the current execution meets the specified technical requirements. These monitoring tools retrieve commonly viewed information, and can be used by way of the command line or a graphical user interface, as determined by the system administrator. These tools display information about the Linux system, such as free disk space, the temperature of the CPU, and other essential components, as well as networking information, such as the system IP address and current rates of upload and download. Monitoring Tools The Linux kernel maintains counterstructures for counting events, that increment when an event occurs. For example, disk reads and writes,… Leggi tuttoSelecting Performance Monitoring Tools

Deploying Kubernetes on bare metal with Rancher 2.0

Contents Install Rancher server Create a Kubernetes cluster Add Kubernetes nodes Install StorageOS as the Kubernetes storage class Understand Nginx Ingress in Rancher Install Rancher Create a VM with Docker and Docker Compose installed and install Rancher 2.0 with docker compose: Rancher docker-compose file: docker-compose.yaml Run these commands to install Rancher with docker compose: git clone https://github.com/polinchw/rancher-docker-compose cd rancher-docker-compose docker-compose up -d Create your Kubernetes cluster with Rancher Install a custom Kubernetes cluster with Rancher. Use the ‘Custom’ cluster. Add Kubernetes nodes and join the Kubernetes cluster Run the following commands on all the VMs that your Kubernetes cluster will run on. The final docker command will have the VM join the new Kubernetes cluster. Replace the –server and –token with your Rancher server and cluster token. Download the kub config file for the cluster After you download the kub config file you can use… Leggi tuttoDeploying Kubernetes on bare metal with Rancher 2.0

Linux Name spaces

Namespaces in Linux are heavily used by many applications, e.g. LXC, Docker and Openstack.Question: How to find all existing namespaces in a Linux system? The answer is quite difficult, because it’s easy to hide a namespace or more exactly make it difficult to find them. Exploring the system In the basic/default setup Ubuntu 12.04 and higher provide namespaces for ipc for IPC objects and POSIX message queues mnt for filesystem mountpoints net for network abstraction (VRF) pid to provide a separated, isolated process ID number space uts to isolate two system identifiers — nodename and domainname – to be used by uname These namespaces are shown for every process in the system. if you execute as rootls -lai /proc/1/nsShell you get the list of attached namespaces of the init process using PID=1. Even this process has attached namespaces. These are the default namespaces… Leggi tuttoLinux Name spaces

Demystifying Containers – Part II: Container Runtimes

This second blog post (and talk) is primary scoped to container runtimes, where we will start with their historic origins before digging deeper into two dedicated projects: runc and CRI-O. We will initially build up a great foundation about how container runtimes work under the hood by starting with the lower level runtime runc. Afterwards, we will utilize the more advanced runtime CRI-O to run Kubernetes native workloads, but without even running Kubernetes at all. Introduction In the previous part of this series we discussed Linux Kernel Namespaces and everything around to build up a foundation about containers and their basic isolation techniques. Now we want to dive deeper into answering the question: “How to actually run containers?”. We will do so without being overwhelmed by the details of Kubernetes’ features or security related topics, which will be part of further blog… Leggi tuttoDemystifying Containers – Part II: Container Runtimes

Demystifying Containers – Part I: Kernel Space

This series of blog posts and corresponding talks aims to provide you with a pragmatic view on containers from a historic perspective. Together we will discover modern cloud architectures layer by layer, which means we will start at the Linux Kernel level and end up at writing our own secure cloud native applications. Simple examples paired with the historic background will guide you from the beginning with a minimal Linux environment up to crafting secure containers, which fit perfectly into todays’ and futures’ orchestration world. In the end it should be much easier to understand how features within the Linux kernel, container tools, runtimes, software defined networks and orchestration software like Kubernetes are designed and how they work under the hood. Part I: Kernel Space This first blog post (and talk) is scoped to Linux kernel related topics, which will… Leggi tuttoDemystifying Containers – Part I: Kernel Space

Apache server-status

To the uninitiated, the mod_status output can look like so much gobbledegook, but it’s really quite straightforward. Let’s take a look at some sample output. Apache Server Status for somedomain.com Server Version: Apache/1.3.9 (Unix) PHP/4.0b3 Server Built: Mar 4 2000 17:01:01 The first few lines identify and provide a brief description of your server. The server version information includes an incomplete list of some of the modules compiled into your server. Our example server is running on a Unix system and has been compiled with support for the PHP scripting language. (The level of detail provided by the server version line may be limited by the ServerTokens configuration directive.) Current Time: Thursday, 13-Apr-2000 17:22:36 PDT Restart Time: Thursday, 13-Apr-2000 17:15:26 PDT Parent Server Generation: 14 Server uptime: 7 minutes 10 seconds Total accesses: 42 – Total Traffic: 187 kB CPU… Leggi tuttoApache server-status

Logging the php mail function

From php version 5.3.0 we can use the directive mail.log to log who’s calling the function mail(). When someone calls the function mail() from a php script we can get some info about the sender in our log. I will enable logging globally. You can choose yourself where to activate it, editing your php.ini for cli, cgi, apache2, fpm… To enable it globally: sudo echo “mail.log = /var/log/phpmail.log” > /etc/php5/conf.d/mail.ini phpmail.log is the log filename used in my example. Then create the file: touch /var/log/phpmail.log chmod 777 /var/log/phpmail.log …and restart apache or process manager you are using: /etc/init.d/apache2 restart or /etc/init.d/php5-fpm restart