Reference - So sánh Postman và Thunder Client ai sẽ làm chủ cuộc chơi

Ngẫu hứng ngồi test Thunder Client và ngẫm nghĩ so sánh với Postman thì thế nào, liệu nó có thể thay thế được không. Công nghệ ngày càng phát triển đòi hỏi sử dụng cái gì củng phải nhanh gọn lẹ, nên cái nào đáp ứng được thì sẽ tốt hơn ?? liệu có đúng không ??


Đầu tiên nói về cài đặt:

Nói về phần cài đặt, ở đây đang dùng linux khi cài Postman thì phải ngồi đợi một xíu, cũng không nhanh lắm mới cài xong, còn lại Thunder Client mở VS Code lên search phát install chạy phà phà khá nhanh và tiện. :)

Postman

Reference - So sánh Postman và Thunder Client ai sẽ làm chủ cuộc chơi

Thunder Client 

Reference - So sánh Postman và Thunder Client ai sẽ làm chủ cuộc chơi


Chức năng thường dùng

Ví dụ công việc chính của nó đi, ở đây chỉ dùng những phương thức cơ bản như sau, kiếm đại API free nào đó test.

Reference - So sánh Postman và Thunder Client ai sẽ làm chủ cuộc chơi

Ok, tạo một API Access Token để test xem sao

Phương thức Post

Postman

Reference - So sánh Postman và Thunder Client ai sẽ làm chủ cuộc chơi

Thunder Client 

Reference - So sánh Postman và Thunder Client ai sẽ làm chủ cuộc chơi

Phương thức Get

Postman

Reference - So sánh Postman và Thunder Client ai sẽ làm chủ cuộc chơi


Thunder Client 

Reference - So sánh Postman và Thunder Client ai sẽ làm chủ cuộc chơi


Phương thức Patch

Postman

Reference - So sánh Postman và Thunder Client ai sẽ làm chủ cuộc chơi


Thunder Client 

Reference - So sánh Postman và Thunder Client ai sẽ làm chủ cuộc chơi


Phương thức PUT

Postman

Reference - So sánh Postman và Thunder Client ai sẽ làm chủ cuộc chơi


Thunder Client 

Reference - So sánh Postman và Thunder Client ai sẽ làm chủ cuộc chơi


Phương thức DELETE

Postman

Reference - So sánh Postman và Thunder Client ai sẽ làm chủ cuộc chơi


Thunder Client 


Reference - So sánh Postman và Thunder Client ai sẽ làm chủ cuộc chơi


Test qua test lại thì có lẽ do thoái quen cá nhân khiến thao tác trên Postman nhanh hơn, nó dễ sử dụng hơn ngoại trừ lúc cài hơi lâu hơn Thunder Client xíu. Nhưng tùy theo thói quen hoặc tiếp cận lâu sẽ thành quen mà thôi. Như tiêu đề chỉ là chém gió cho vui thôi, vì lựa chọn là của mỗi cá nhân, nếu hợp thì dùng :)


Nhãn:

Hướng dẫn cài Kubernetes Dashboard v2.0.0+0.g1f66b1c trên Kubernetes Centos8

 

Ok, như bài trước đây có nói về cách cài đặt Kubernetes trên Centos8, quá trình cài đặt thì cũng đã hoàn tất ở phần này Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O . Như phần trước thì có nói cách cài Kubernetes Dashboard đơn giản thì bài này sẽ nói nhanh về phần này.


Hướng dẫn cài Kubernetes Dashboard  v2.0.0+0.g1f66b1c trên Kubernetes Centos8

Thực sự đối với Kubernetes Dashboard  này thì nó khá hữu ích, dùng để kiểm tra thông số này kia, viết file YAML hoặc json sẵn trực tiếp lên và chạy cũng tốt, riêng cá nhân mình chỉ dùng nó để check xem thồn tin , thông số bla bla thôi còn chính sẽ dùng CLI là chính . 

Thực hiện vài bước như sau:


[root@kubemaster ~]#kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml


Tại sao dùng link trên, đơn giản vì chính chủ nó recommended như vậy, nó hỗ trợ tận răng rồi nên dùng sẽ tốt hơn, có thể tự viết lại và lấy vài thuộc tính phù hợp với nhu nếu muốn dùng.


Hướng dẫn cài Kubernetes Dashboard  v2.0.0+0.g1f66b1c trên Kubernetes Centos8



Ok, khá là nhanh như vậy đợi xíu là coi như nó cài xong rồi đây, đơn giản vậy thôi. Giờ có câu hỏi như thế này, cài xong thì sao vô được để xem, mình cần tạo user để vào, nó như sau.

Khi tạo user access vào Dashboard thì ta tham khảo các kind từ file recommended.yaml ở trên để có các lựa chọn phù hợp.

[root@kubemaster01 dashboard]# vi kubernetes-dashboard-loc-pham.yaml 
[root@kubemaster01 dashboard]# cat  kubernetes-dashboard-loc-pham.yaml 
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user-loc-pham
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user-loc-pham
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user-loc-pham
  namespace: kubernetes-dashboard
[root@kubemaster01 dashboard]# 
[root@kubemaster01 dashboard]# kubectl apply -f kubernetes-dashboard-loc-pham.yaml


Hướng dẫn cài Kubernetes Dashboard  v2.0.0+0.g1f66b1c trên Kubernetes Centos8


Hiển thị thông tin token đăng nhập ra, copy lại dùng để dăng nhập

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user-loc-pham | awk '{print $1}')


Hướng dẫn cài Kubernetes Dashboard  v2.0.0+0.g1f66b1c trên Kubernetes Centos8

Vậy xem như là xong rồi đó, chạy kubectl proxy nó trả ra port 8001 default là nhập token vào chạy thôi.

Như trên nếu server master của bạn có Gui đăng nhập, như server trên màn hình đen thui thì sao, thật sự có khá nhiều cách để public dashboard này ra ngoài và dùng được token, chăng hạn như là dùng ssl https vẫn được.

Phần demo này làm nhanh bằng cách chơi chiêu "Ve sầu thoát xác" theo phong cách chém gió trà đá, còn gọi chính quy là SSH Tunneling (Port Forwarding), vì làm vậy cho nó nhanh mau lẹ, đảm bảo vẫn dùng ok :)


Hướng dẫn cài Kubernetes Dashboard  v2.0.0+0.g1f66b1c trên Kubernetes Centos8

Trên máy local cứ đăng nhập vào là dùng thôi

http://localhost:3000/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login


Hướng dẫn cài Kubernetes Dashboard  v2.0.0+0.g1f66b1c trên Kubernetes Centos8

Cuối cùng là kết quả bla bla


Hướng dẫn cài Kubernetes Dashboard  v2.0.0+0.g1f66b1c trên Kubernetes Centos8

Tùy theo nhu cầu user phân quyền như thế nào thì cú áp vào mà dùng.

Cuối cùng Bonus thêm cách config completion để gợi ý nhắc kubeclt để thực hiện cho nhanh.

Hướng dẫn cài Kubernetes Dashboard  v2.0.0+0.g1f66b1c trên Kubernetes Centos8


Nhãn:

Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )

 

Ok, tối hôm nay rãnh rỗi làm một bài liên quan về Kubernetes, nói đến thằng này thì khá là bá đạo rồi, nhưng trước khi nói đến nó thì cần có một xíu góp ý cá nhân như sau. Nếu bạn chưa biết gì về nó và trước đó chưa biết gì về Docker thì hãy học Docker đi, đối với Docker thì học khá là nhanh chưa tới 1 tuần là chiến banh xác luôn. Ok nếu bạn đã kinh qua rồi thì tiếp theo  bên dưới đây là cách cài đặt.


Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )

Như tiêu đề tại sao nói nghĩ chơi với Docker, vì theo nguồn mới đây rộ lên là Kubernetes sẽ bái bai Docker, cái này thì băng bọn nó kháo nhau đầy internet, trên trang chủ của kubernetes version v1.21 vẫn còn hỗ trợ Docker nhé. Nhưng nghe có biến thì tìm cách update để có cái mà chiến :)

Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )

Trước tiên cần biết yêu cầu tối thiểu để cài Kubernetes thì cấu hình phải là 2Gb ram vs 2 CPU trở lên mới được cài. Các bước bên dưới sẽ ghi chi tiết ra để làm phát được luôn, căng chổ nào sẽ nói rõ chổ đó. :)

Giờ cài một Master vs 2 Worker.(Centos 8)

192.168.1.50 kubemaster

192.168.1.51 kubeworker01

192.168.1.52 kubeworker02

Thứ tự sẽ làm con master trước, sau khi ngon lành sẽ tiếp tục 2 con kia, step by step sẽ tốt hơn làm ào ào :)

1.Chỉnh sửa file host


Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )


2. Disable selinux vaf Firewall

Đối với Firewall nên mở port cần thiết, đừng nên tắt đi, ở đây để cho nhanh nên tắt luôn, còn Selinux thì nên permissive, ở đây lười quá tắt luôn.


Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )

[root@kubemaster ~]# setenforce 0
[root@kubemaster ~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
[root@kubemaster ~]# systemctl stop firewalld.service 
[root@kubemaster ~]# systemctl disable  firewalld.service 
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@kubemaster ~]#reboot

Danh sách port yêu cầu sau

Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )

3.Install iproute-tc

Tại sao cài thằng này, vì trong lúc khởi tạo nếu thiếu nó thì sẽ warning liền

 yum install -y iproute-tc

Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )

4.Disabe swapoff 

Kubernetes nó không chấp nhận swap, nên nếu không tắt đi sẽ không khởi tạo được


Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )


[root@kubemaster ~]#vi /etc/fstab #/dev/mapper/cl-swap swap swap defaults 0 0 [root@kubemaster ~]# swapoff -a


5.Cri-o

Thằng này là thằng khá quan trọng, vì sao, vì nó thay thế Docker đây. Khi bạn đã cài nó rồi thì không cần động chạm gì đến Docker nữa, và hãy quên Docker đi vì nó sẽ sẽ cân hết.

Cri-o trên Centos8 nó sử dụng mặc định systemd rồi nên không cần lăng tăng chi nhiều, nếu dùng Os khác thì chú ý phần này là ok.


Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )

 

Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )



Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )

cat <<EOF | sudo tee /etc/modules-load.d/crio.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

# Set up required sysctl params, these persist across reboots.
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables  = 1
net.ipv4.ip_forward                 = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF

sudo sysctl --system


[root@kubemaster ~]# VERSION=1.20
[root@kubemaster ~]# OS=CentOS_8

[root@kubemaster ~]# sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/devel:kubic:libcontainers:stable.repo
[root@kubemaster ~]# sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo
[root@kubemaster ~]# sudo yum install cri-o
[root@kubemaster ~]# systemctl daemon-reload
[root@kubemaster ~]# systemctl enable crio --now
Ok , xong xem Cri-o nó chạy là ok, đối với Centos 8 vậy là ok rồi, nếu muốn customize gì thêm thì cứ vào /etc/crio/crio.conf để config thêm.

Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )


7. Một vài cái về product_uuid, iptables để thấy bridged traffic ...


Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )

Về UUID thì khó khi nào trùng kiểm tra cho chắc chắn, dù có dùng máy ảo clone ra mà để trùng thì thua :) tạo lại thôi :)

Còn iptables see bridged traffic thì chạy dòng sau


cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system

8.Installing kubeadm, kubelet and kubectl

Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )

Quá trình cài đặt Kubelet, kubeadm, kubectl đơn giản như sau

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF


sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

Khi cài xong nhớ enable nó lên trước khi làm drop-in file

[root@kubemaster ~]# sudo systemctl enable --now kubelet

tiếp theo config The kubelet drop-in file for systemd, là như thế nào, có nghĩa là mình đang dùng Cri-o chạy systemd, khi config kubelet drop này thì service của nó khi chạy lên sẽ kế thừa file này, thì thằng kubeadm sẽ gởi config cách chạy systemd nhw thế nào để thằng kubelet nó hiểu.

Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )

Config này là của kubernetes cung cấp nhé, copy từ doc của nó ra thôi

[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
EnvironmentFile=-/etc/default/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS
Cuối cùng reload và restart nó lên
systemctl daemon-reload && systemctl restart kubelet

9.Khởi tạo cluster kubernetes dùng kubeamd, khởi tạo này dành cho Master

kubeadm init --pod-network-cidr=10.244.0.0/16


Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )

Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )

Yeah ok, đối với các worker node thì từ bước 8 trở về trước cú thế mà làm.

Khi khởi tạo thành công thì kubernetes sẽ báo những việc cần làm như thế nào thì cứ thế mà làm, làm xong thì cài thêm add-on Calico để quản lý pod network

Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml


10.Đối với các node worker thì sao

Thì như gợi ý từ bước trên, cứ y  vậy mà cài, vì nó là node worker sẽ bỏ qua phần khởi tạo mà sẽ là join, khi khởi tạo ở master đã cung cấp token rồi, cứ thế mà dùng.

Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )


Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )

Kiểm tra trên master

Hướng dẫn cài Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos8 (nghỉ chơi với Docker :) )

Ok, như vậy đã xong, việc cài đặt Kubernetes V1.21 với container runtime Cri-O(Container Runtime Interface) bằng kubeadm trên Centos 8 khá đơn giản như vậy.

Ah, thường thấy trên google cloud hay các dịch vụ có trang web UI không, đó gọi là Dashboard UI Kubernetes. Vậy cài nó như thế nào, nói chung là rất là đơn giản luôn vì người ta làm sẵn rồi kéo về dùng thôi :) bài sau sẽ hướng dẫn cài về Dashboard Kubernetes


Nhãn: