Chuyển đến nội dung chính

Bài đăng

Đang hiển thị bài đăng từ 2019

NodePort , Load Balancer và Ingess trong kubernetes.

Khái niệm NodePort , Load balancer và Ingress hay làm chúng ta lẫn lộn. Để làm rõ vấn đề này bạn cần vững và hiểu các khái niệm sau : 



NodePort : 

NodePort là dịch vụ cơ bản nhất của Kubernetes để traffic bên ngoài đi vào dịch vụ bên trong. 


NodePort được định nghĩa trong file YAML như sau: 


apiVersion: v1
kind: Service
metadata:
name: my-nodeport-service
spec:
selector:
app: my-app
type: NodePort
ports:
- name: http
port: 80
targetPort: 80
nodePort: 30036
protocol: TCP
NodePort hiện tại của service là : 30036

Loadbalancer:

Loadbalancer sẽ cung cấp 1 single IP address để truy cập vào dịch vụ phía trong: 

Tổng quan về Clair tool.

Clair là một mã nguồn mở dùng để quét các lỗ hổng (vulnerability) và là một tool phân tích tĩnh các image container được phát triển bởi CoreOS.

Clair lấy thông tin lỗ hỗng từ các nguồn khác nhau và lưu vào cơ sở dữ liệu (database )
Clair xuất API cho các client yêu cầu và thực thi quét lỗ hổng. Điều đó cho thấy Clair là một tool "backend-only" , nó không được tích hợp với "frontend" để quét hay các máy quét lỗ hổng.

Có một vài công cụ của bên thứ 3 tích hợp với Clair nhưng quét các image từ terminal như là một phần của việc deploy.

Cài đặt Clair Theo link sau : https://github.com/coreos/clair/blob/master/Documentation/running-clair.md

Và có thể chạy Theo kiều container.

Dưới client ta chạy klar  tool với cấu trúc lệnh như sau:

CLAIR_ADDR=<Clair server URL>  klar <image name to be scanned> Ví dụ ta cần scan image : python:3 trên server có cái CLAIR server :

CLAIR_ADDR=localhost klar python:3 Nếu Docker image python không có trên host thì nó sẽ tự động pul…

Find Security Bugs với Jenkins, Maven và Sonaqube

https://find-sec-bugs.github.io/

Findsecbugs là một plugin cho việc kiểm tra các lỗi bảo mật cho một ứng dụng web chạy Java.

Plugin này có thể tích hợp với nhiếu công cụ phát triền khác nhau như : Eclipse , IntelliJ và NetBeans.

Ngoài ra nó được dùng trong CI như Jenkins và Sonar.

Bài viết này tập  trung vào việc Findsecbugs tích hợp với Maven và Jenkins.

I. Cài đặt FindBug plugin trên Jenkins.

Manage Jenkins >> Manage Plugin >> Available

Select : "FindBug Plug-in"

II. Configure Maven:

1. Cấu hình file POM:

Trong file pom.xml :
[...] <build>     <plugins>         [...] <!-- SpotBugs Static Analysis -->         <plugin>             <groupId>com.github.spotbugs</groupId>             <artifactId>spotbugs-maven-plugin</artifactId>             <version>3.1.1</version>             <configuration>                 <effort>Max</effort>                 <threshold>Low</threshold>                 &…

Cài đặt kubernetes cluster trên ubuntu.

I. Yêu cầu cầu hình server ubuntu trước khi cài đặt kubernetes.

Master: 2 GB RAM2 Cores of CPUSlave/ Node: 1 GB RAM1 Core of CPU 
 I.1 Update repository.


apt-get update
  I.2 Tắt swap:

swapoff -anano /etc/fstab


Coment out, để khi server reboot, swap không được khởi tạo.

I.3 Update hostname:
nano /etc/hostname


I.4 Update file hosts:

nano /etc/hosts



 I.5 Cài đặt OpenSSH-server:

sudo apt-get install openssh-server  I.6 Cài đặt docker:

# sudo su # apt-get update # apt-get install -y docker.io
Cài đặt repo cho kubernetes :

# apt-get update && apt-get install -y apt-transport-https curl # curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - # cat <<EOF >/etc/apt/sources.list.d/kubernetes.list deb http://apt.kubernetes.io/ kubernetes-xenial main EOF # apt-get update
 I.7 : Cài đặt kubeadm, Kubelet And Kubectl



# apt-get install -y kubelet kubeadm kubectl
Update kubernetes configuration:

nano /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
Thêm vào :

Env…

Spring cloud - bootstrapping là gì ? Xây dựng một ứng dụng sử dụng spring cloud cơ bản.

I. Khái quát: 

Spring cloud là một framework để xây dựng một ứng dụng trên nền tảng đám mây rất mạnh mẽ. Khi chuyển qua môi trường phân tán (distributed env ) các framework thường đối mặt với các vấn đề chung. và framework này cung các các giải pháp để giải quyết những vấn đề đó.

Các ứng dụng chạy với kiến trúc microservices thường mong muốn cho việc phát triển, triển khai và bảo trì một cách đơn giản nhất. Việc phân tích, phân thành mảng nhỏ các ứng dụng cho phép lập trình viên tập trung giải quyết một vấn đề trong một thời  điểm. và không ảnh hưởng đến các phần khác của hệ thống.

Mặt khác những thử thách khác nhau khi chúng ta tiến tới sử dụng kiến trúc microservices:

Những cấu hình bên ngoài là linh động và không cần build lại dịch vụ.Service discovery (dịch vụ quan sát và phát hiện )Ẩn các dịch vụ phức tạp được deploy lên các host khác nhau.  Trong bài viết này, chúng ta sẽ build 5 microservcie, 1 config server và 1 discovery server, 1 gateway server, 1 book service và một rating s…