This presentation start from basic concept such as container and container orchestration
And then go through Kubernetes internal especially Master Node components and Work Node components and show and explain core mechanism with codes.
This document discusses optimizations for CEPH storage on SSDs. It begins with an introduction to NIC tech lab and software defined storage. It then explains why SSDs provide higher performance than HDDs due to lower latency and higher parallelism. The document provides examples of optimizing the Linux IO scheduler and discusses principles of performance tuning. It describes the CEPH architecture including RADOS, CRUSH, and consistency models. It focuses on optimizations for metadata processing in BlueStore including sharding, pre-allocation, and reducing acknowledgment overhead. Overall optimizations included reducing metadata overhead, improving IO paths, using shard finishers, and optimizing the operating system.
The document is a presentation by Naushad Ahmad covering NGINX, its features, and its role as a Kubernetes Ingress controller. It explains the importance of DNS mapping, HTTP/HTTPS protocols, and details about traffic management, content caching, and security controls. A demo highlights NGINX's capabilities in load balancing and reverse proxying within a Kubernetes environment.
The Red Hat Ceph Performance & Sizing Guide provides an overview of Ceph, its architecture, and data storage methods while detailing test methodologies and results. Key findings emphasize the performance outcomes of various configurations, including the advantages of replication and erasure coding for different workloads. Recommendations for sizing and configuration are included to optimize performance and cost efficiency in storage solutions.
The document discusses Apache ZooKeeper, an open-source coordination service for distributed applications, facilitating process coordination through a hierarchical namespace. It highlights its features such as naming, configuration management, and synchronization services, along with the architecture and operational aspects including znode management, watches, and consensus mechanisms. Additionally, it outlines practical applications and uses of ZooKeeper in various companies and projects.
Hadoop REST API Security with Apache Knox GatewayDataWorks Summit
油
The document discusses the Apache Knox Gateway, which is an extensible reverse proxy framework that securely exposes REST APIs and HTTP-based services from Hadoop clusters. It provides features such as support for common Hadoop services, integration with enterprise authentication systems, centralized auditing of REST API access, and service-level authorization controls. The Knox Gateway aims to simplify access to Hadoop services, enhance security by protecting network details and supporting partial SSL, and enable centralized management and control over REST API access.
The Patterns of Distributed Logging and ContainersSATOSHI TAGOMORI
油
The document discusses the complexities of logging in environments utilizing microservices and containers, highlighting challenges such as the lack of permanent storage and fixed addresses. It presents various aggregation patterns for logging, including source-side and destination-side aggregation, as well as practices using tools like Fluentd and Elasticsearch for efficient log management. It emphasizes best practices for scalable logging that ensures service stability and business growth.
Kubernetes Networking with Cilium - Deep DiveMichal Rostecki
油
The document discusses Kubernetes networking using Cilium, a CNI plugin that leverages BPF to enhance network performance and security. It covers various filtering methods such as L3 and L4, as well as features like cluster mesh and multi-cluster support, and highlights the advantages of Cilium over traditional iptables, including improvements in Istio performance. Additionally, it outlines specific use cases and configurations for routing and policy enforcement within Kubernetes environments.
macvlan and ipvlan allow VMs and containers to have direct exposure to the host network by assigning them their own MAC/IP addresses without requiring a bridge. macvlan uses MAC addresses to separate traffic while ipvlan uses layer 3. Both are lighter weight than bridges. macvlan is commonly used in bridge mode to allow communication between VMs/containers on the same host, while ipvlan may be preferred when MAC limits are in place or for untrusted networks.
Deploy an Elastic, Resilient, Load-Balanced Cluster in 5 Minutes with SenlinQiming Teng
油
The document outlines a framework for deploying an elastic, resilient, load-balanced cluster using Senlin, detailing requirements, operations, and architecture to enhance manageability within OpenStack. Key features include autoscaling, high availability, and flexibility through customizable policies to meet real-life scenarios. It integrates with existing OpenStack services like Heat, Nova, and Ceilometer, allowing for automated scaling and management of resources.
Using eBPF for High-Performance Networking in CiliumScyllaDB
油
Liz Rice discusses the use of eBPF for high-performance networking in Cilium, highlighting its application in handling network packets and enhancing performance. The document covers various technical aspects of eBPF implementation, including examples of code for packet handling and discussions on networking security. Additionally, it mentions the performance benefits of using Cilium as a replacement for kube-proxy in container networking.
This document provides a comprehensive overview of memcached, a distributed memory caching system designed to enhance the performance and scalability of web applications. It discusses caching principles, implementation strategies, and practical examples for developers on how to optimize data storage and retrieval using memcached. The document also highlights key considerations for cache management, including invalidation strategies and client access protocols.
Seastore: Next Generation Backing Store for CephScyllaDB
油
The document discusses the development of Seastore, a new backing store for Ceph designed to improve I/O performance and reduce latency through a threading model that utilizes Seastar's architecture. It outlines the specifications and advantages of using NVMe zones and persistent memory for efficient data management, as well as the logical structure and components of Seastore, such as transaction management and data handling. Current progress on the project is summarized, highlighting its stability and performance improvements yet to be implemented.
This document outlines a webinar on nginx installation and tuning, detailing the installation process, system and software tuning, and benchmarking techniques. It highlights the functionalities of nginx, compares its open-source version with nginx plus, and provides practical commands for installation and tuning. The final emphasis is on installing from the official nginx repository and the importance of benchmarking for optimal performance.
This webinar, presented by Owen Garrett and introduced by Andrew Alexeev, covers how to scale web server capacity using NGINX and its load balancing features. It explores basic load balancing techniques, advanced configurations for session persistence, and various methods like A/B testing and application migration. The presentation also highlights the significant usage of NGINX across top websites and encourages viewers to explore further resources and future webinars.
The document outlines deployment strategies and tools used in Kubernetes (k8s), focusing on concepts like replication, pod management, and deployment processes. It discusses various deployment strategies, including rolling updates, blue/green, and canary deployments, and emphasizes features such as upgrading, rollback, and scaling. Additionally, it contrasts deployments with statefulsets, which are better suited for stateful applications requiring unique identities and persistent storage.
This document outlines an agenda for a workshop on Kubernetes networking with eBPF and Cilium. The workshop covers various topics including principles of eBPF and Cilium, Kubernetes networking, cluster mesh, security, observability, service mesh, and Tetragon. It provides overviews and examples for each topic. The workshop is presented by Rapha谷l Pinson who works on Cilium at Isovalent.
This document provides an overview of IT automation using Ansible. It discusses using Ansible to automate tasks across multiple servers like installing packages and copying files without needing to login to each server individually. It also covers Ansible concepts like playbooks, variables, modules, and vault for securely storing passwords. Playbooks allow defining automation jobs as code that can be run on multiple servers simultaneously in a consistent and repeatable way.
NATS Streaming is an alternative message broker to Apache Kafka that provides pub/sub and stream processing capabilities. It uses a commit log design where messages are appended to a log and stored even if consumed, allowing multiple consumers and time travel. While simpler than Kafka, it has limitations including lack of scalability for large channels and a smaller ecosystem of integrations compared to Kafka.
[覦襭] ろ Pacemaker zabbix 伎 覦(w/ Zabbix Korea Community) 蟾
油
Pacemaker is an open source high-availability and load balancing stack for Linux. It provides unified configuration and management of cluster resources through tools like pcs and crmsh. The document discusses installing and configuring the necessary Pacemaker components - Pacemaker, Corosync, SBD and fence agents - on nodes to enable high availability of a Zabbix server through active-passive replication and fencing. A virtual IP will be configured to fail over between nodes when the active node fails.
The Patterns of Distributed Logging and ContainersSATOSHI TAGOMORI
油
The document discusses the complexities of logging in environments utilizing microservices and containers, highlighting challenges such as the lack of permanent storage and fixed addresses. It presents various aggregation patterns for logging, including source-side and destination-side aggregation, as well as practices using tools like Fluentd and Elasticsearch for efficient log management. It emphasizes best practices for scalable logging that ensures service stability and business growth.
Kubernetes Networking with Cilium - Deep DiveMichal Rostecki
油
The document discusses Kubernetes networking using Cilium, a CNI plugin that leverages BPF to enhance network performance and security. It covers various filtering methods such as L3 and L4, as well as features like cluster mesh and multi-cluster support, and highlights the advantages of Cilium over traditional iptables, including improvements in Istio performance. Additionally, it outlines specific use cases and configurations for routing and policy enforcement within Kubernetes environments.
macvlan and ipvlan allow VMs and containers to have direct exposure to the host network by assigning them their own MAC/IP addresses without requiring a bridge. macvlan uses MAC addresses to separate traffic while ipvlan uses layer 3. Both are lighter weight than bridges. macvlan is commonly used in bridge mode to allow communication between VMs/containers on the same host, while ipvlan may be preferred when MAC limits are in place or for untrusted networks.
Deploy an Elastic, Resilient, Load-Balanced Cluster in 5 Minutes with SenlinQiming Teng
油
The document outlines a framework for deploying an elastic, resilient, load-balanced cluster using Senlin, detailing requirements, operations, and architecture to enhance manageability within OpenStack. Key features include autoscaling, high availability, and flexibility through customizable policies to meet real-life scenarios. It integrates with existing OpenStack services like Heat, Nova, and Ceilometer, allowing for automated scaling and management of resources.
Using eBPF for High-Performance Networking in CiliumScyllaDB
油
Liz Rice discusses the use of eBPF for high-performance networking in Cilium, highlighting its application in handling network packets and enhancing performance. The document covers various technical aspects of eBPF implementation, including examples of code for packet handling and discussions on networking security. Additionally, it mentions the performance benefits of using Cilium as a replacement for kube-proxy in container networking.
This document provides a comprehensive overview of memcached, a distributed memory caching system designed to enhance the performance and scalability of web applications. It discusses caching principles, implementation strategies, and practical examples for developers on how to optimize data storage and retrieval using memcached. The document also highlights key considerations for cache management, including invalidation strategies and client access protocols.
Seastore: Next Generation Backing Store for CephScyllaDB
油
The document discusses the development of Seastore, a new backing store for Ceph designed to improve I/O performance and reduce latency through a threading model that utilizes Seastar's architecture. It outlines the specifications and advantages of using NVMe zones and persistent memory for efficient data management, as well as the logical structure and components of Seastore, such as transaction management and data handling. Current progress on the project is summarized, highlighting its stability and performance improvements yet to be implemented.
This document outlines a webinar on nginx installation and tuning, detailing the installation process, system and software tuning, and benchmarking techniques. It highlights the functionalities of nginx, compares its open-source version with nginx plus, and provides practical commands for installation and tuning. The final emphasis is on installing from the official nginx repository and the importance of benchmarking for optimal performance.
This webinar, presented by Owen Garrett and introduced by Andrew Alexeev, covers how to scale web server capacity using NGINX and its load balancing features. It explores basic load balancing techniques, advanced configurations for session persistence, and various methods like A/B testing and application migration. The presentation also highlights the significant usage of NGINX across top websites and encourages viewers to explore further resources and future webinars.
The document outlines deployment strategies and tools used in Kubernetes (k8s), focusing on concepts like replication, pod management, and deployment processes. It discusses various deployment strategies, including rolling updates, blue/green, and canary deployments, and emphasizes features such as upgrading, rollback, and scaling. Additionally, it contrasts deployments with statefulsets, which are better suited for stateful applications requiring unique identities and persistent storage.
This document outlines an agenda for a workshop on Kubernetes networking with eBPF and Cilium. The workshop covers various topics including principles of eBPF and Cilium, Kubernetes networking, cluster mesh, security, observability, service mesh, and Tetragon. It provides overviews and examples for each topic. The workshop is presented by Rapha谷l Pinson who works on Cilium at Isovalent.
This document provides an overview of IT automation using Ansible. It discusses using Ansible to automate tasks across multiple servers like installing packages and copying files without needing to login to each server individually. It also covers Ansible concepts like playbooks, variables, modules, and vault for securely storing passwords. Playbooks allow defining automation jobs as code that can be run on multiple servers simultaneously in a consistent and repeatable way.
NATS Streaming is an alternative message broker to Apache Kafka that provides pub/sub and stream processing capabilities. It uses a commit log design where messages are appended to a log and stored even if consumed, allowing multiple consumers and time travel. While simpler than Kafka, it has limitations including lack of scalability for large channels and a smaller ecosystem of integrations compared to Kafka.
[覦襭] ろ Pacemaker zabbix 伎 覦(w/ Zabbix Korea Community) 蟾
油
Pacemaker is an open source high-availability and load balancing stack for Linux. It provides unified configuration and management of cluster resources through tools like pcs and crmsh. The document discusses installing and configuring the necessary Pacemaker components - Pacemaker, Corosync, SBD and fence agents - on nodes to enable high availability of a Zabbix server through active-passive replication and fencing. A virtual IP will be configured to fail over between nodes when the active node fails.
Talk about Kubernetes cluster on baremetal servers for serve internal services.
Sharing my experiences about setup and manage kubernetes cluster on premise.
At first, start with single master kubernetes cluster and enhanced by many opensource softwares.
Add more master nodes for increase server availability.
Use Rook, MetalLB, Ceph, mysql-operator and more opensource projects.
The document discusses distributed tracing using Jaeger, outlining its significance in microservices architecture for monitoring and debugging system performance. It covers tracing concepts, standards, and the role of observability, detailing how various tools like Jaeger, Zipkin, and OpenTracing contribute to effective tracing strategies. Additionally, it provides a practical guide on setting up Jaeger with a sample application to illustrate the tracing process in a distributed environment.
The document discusses CQRS (Command Query Responsibility Segregation) and event sourcing patterns for building distributed applications. CQRS separates commands, which change data, from queries, which read data. Event sourcing records all state changes as a sequence of immutable events. This allows reconstructing any past state and enables easy distribution of data. The document provides examples of how event sourcing and CQRS can be implemented using event stores, event projections, and read models to support both commands and queries independently.
The elegant way of implementing microservices with istioInho Kang
油
The document discusses the evolution and implementation of microservices, highlighting the advantages of microservices architecture over monolithic applications, such as increased efficiency, easier updates, and improved stability. It introduces Istio as an open platform for connecting, managing, and securing microservices, emphasizing its capabilities such as traffic management, resilience, and policy enforcement. The presentation also outlines the structure of microservice organizations and includes references for further exploration of the topics.
The document discusses microservice patterns for implementing microservices. It begins with an overview of pattern languages and how they can be applied to microservices. It then covers several common microservice patterns including service discovery, communication styles, deployment strategies, and reliability patterns like circuit breakers.
DevOps in Practices document provides an overview of DevOps practices and microservice architecture. It discusses that DevOps aims to reduce the time between introducing changes to a system and deploying those changes in a production environment. Microservices architecture breaks applications into smaller, independent services that are built around business capabilities. Netflix is highlighted as an example that pioneered this approach at a large scale using AWS. Key aspects of DevOps like continuous integration, infrastructure as code, and automated testing are explained in the context of enabling faster delivery with microservices.
1. Copyright 息 2017, Oracle and/or its affiliates. All rights reserved. | Confidential Oracle Internal/Restricted/Highly Restricted 1
th
螳誤
inho.kang@oracle.com
Kubernetes : from Beginner
to Advanced
2019.03.16
9th Oracle
Developer
Meetup
2. Copyright 息 2017, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracles products remains at the sole discretion of Oracle.
Confidential Oracle Internal/Restricted/Highly Restricted 2
3. 則 .Net Developer
則 CBD, SOA Methodology Consulting
則 ITA/EA, ISP Consulting
則 Oracle Corp.
則 Middleware
則 Cloud Native Application, Container Native
則 Emerging Technology Team
則 k8s korea user group
innoshom@gamil.com
18. Pod IP : 10.244.2.xx : Node2
Pod IP : 10.244.1.xx : Node1
K8snode1
cni0 : 10.244.1.1
Docker0 : 172.17.0.1
Enp0s3 : 10.0.2.15
Enp0s8 : 192.168.56.111
Flannel.1 : 10.244.1.0
Pod
vethxxxx
CNI0 : 10.244.1
VB Net
19. 則 Components
則 $kubectl get componentstatuses
則 Node
則 $kubectl get node
則 Pod
則 $kubectl get pod
20. 則 YAML Descriptor
則 Kind
則 Label
則 Replicas
則 Selector
則 MatchLabels
則 MatchExpression
則 Template
則 Spec
則 Container
則 Image
則 ports
則 Components
則 $kubectl get componentstatuses
則 Node
則 $kubectl get node
則 Pod
則 $kubectl get pod
21. kubectl create -f https://k8s.io/examples/controllers/nginx-deployment.yaml
kubectl get rs
kubectl get deployments
kubectl get pods --show-labels
https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
22. kubectl get rs
kubectl scale --replicas=4 rs/nginx-deployment-75bd58f5c7
kubectl get pods --show-labels
https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
kubectl get po ngnix-deployment-xxx o yaml
kubectl edit po ngnix-deployment-xxx o yaml
33. 則 Namespace
則 Hostname
則 Process IDs
則 File System
則 Network interfaces
則 Inter-Process Communication (IPC)
則 Cgroup(Control Group)
則 CPU
則 RAM
則 Block I/O
則 Network I/O
Cgroups = limits how much you can use;
namespaces = limits what you can see (and therefore use)
https://www.ianlewis.org/en/what-are-kubernetes-pods-anyway
55. So lets see how the scheduling lifecycle really looks
like:
1.A pod is created and its desired state is saved
to etcd with the node name unfilled.
2.The scheduler somehow notices that there is a
new pod with no node bound.
3.It finds the node that best fits that pod.
4.Tells the apiserver to bind the pod to the node ->
saves the new desired state to etcd.
5.Kubelets are watching bound pods through
the apiserver, and start the containers on the
particular node.
https://banzaicloud.com/blog/k8s-custom-scheduler/