Hướng dẫn sử dụng Kubernetes: Tại sao bạn cần StatefulSets trong Kubernetes?

Kubernetes Là Gì? Vai Trò Và Các Thuật Ngữ Phổ Biến

(viết tắt là k8s) giúp quý khách hoàn toàn có thể quản lí lý (hoặc “điều phối”) vớ cả những lượng việc làm được chứa trong container của quý khách, bao gồm cung cấp cho, connect mạng, cân bởi chuyên chở, bảo mật và mở rộng quy tế bào. rất có thể chạy độc lập mà ko cần thiết có Kubernetes, tuy nhiên Kubernetes không thể hoạt động mà ko có công ty container như Docker. Kubernetes góp con người chủng loại vứt vô cùng nhiều các quy trình thủ công liên quan đến việc triển khai và mở rộng lớn những containerized applications.

Tiêu đề video: Kubernetes Tutorial: Why Do You Need StatefulSets in Kubernetes?

Độ dài: 00:09:53, Ngày đăng: 2019-12-28 15:27:05

Tác giả: KodeKloud

Link gốc: https://www.youtube.com/watch?v=Vrxr-7rjkvM

Truy cập toàn bộ khóa học tại đây: Trước khi chúng ta nói về bộ trạng thái, trước tiên chúng ta phải hiểu tại sao chúng ta cần nó. Tại sao chúng ta không thể sống với Triển khai? Hãy bắt đầu từ những điều rất cơ bản. Vì vậy, trong một phút, hãy tạm gác mọi thứ mà chúng ta đã học được cho đến nay, chẳng hạn như Triển khai hoặc Kubernetes, hoặc Docker hoặc vùng chứa hoặc máy ảo. Hãy bắt đầu với một máy chủ đơn giản. Máy chủ vật lý cũ tốt của chúng tôi. Và chúng tôi có nhiệm vụ triển khai một máy chủ cơ sở dữ liệu. Vì vậy, chúng tôi cài đặt và thiết lập MySQL trên máy chủ và tạo cơ sở dữ liệu. Cơ sở dữ liệu của chúng tôi hiện đã hoạt động. Các ứng dụng khác hiện có thể ghi dữ liệu vào cơ sở dữ liệu của chúng tôi. Để chống lại những thất bại, chúng tôi có nhiệm vụ triển khai giải pháp Tính sẵn sàng cao. Vì vậy, chúng tôi triển khai các máy chủ bổ sung và cài đặt MySQL trên các máy chủ đó. Chúng tôi có một cơ sở dữ liệu trống trên các máy chủ mới. Vậy làm cách nào để chúng ta sao chép dữ liệu từ cơ sở dữ liệu gốc sang cơ sở dữ liệu mới trên các máy chủ mới. Trước khi chúng ta đi sâu vào vấn đề đó, Hãy quay lại câu hỏi của chúng ta về cách chúng ta sao chép cơ sở dữ liệu sang các cơ sở dữ liệu trong máy chủ mới. Có sẵn các cấu trúc liên kết khác nhau. Liên kết đơn giản nhất là một cấu trúc liên kết đa nô lệ chính duy nhất, trong đó tất cả các lần ghi đều được gửi đến máy chủ chính và việc đọc có thể được phục vụ bởi máy chủ chính hoặc bất kỳ máy chủ nô lệ nào. Vì vậy, máy chủ chính nên được thiết lập trước, trước khi triển khai các nô lệ. Sau khi các nô lệ được triển khai, hãy thực hiện sao chép ban đầu của cơ sở dữ liệu từ máy chủ chính sang máy chủ phụ đầu tiên. Sau khi sao chép ban đầu, hãy cho phép sao chép liên tục từ cái chính đến cái nô lệ đó để cơ sở dữ liệu trên nút phụ luôn đồng bộ với cơ sở dữ liệu trên cái chính. Lưu ý rằng cả hai nô lệ này đều được cấu hình với địa chỉ của máy chủ chính. Khi khởi tạo bản sao, bạn trỏ nô lệ đến chủ bằng tên máy chủ hoặc địa chỉ của chủ. Bằng cách đó các nô lệ biết chủ ở đâu. Bây giờ chúng ta hãy quay trở lại thế giới của Kubernetes và vùng chứa và cố gắng triển khai thiết lập này. Trong thế giới Kubernetes, mỗi trường hợp này, bao gồm cả chủ và nô lệ đều là một phần POD của quá trình triển khai. Trong bước 1, chúng tôi muốn chủ nhân xuất hiện trước rồi đến nô lệ. Và trong trường hợp các nô lệ, chúng tôi muốn nô lệ 1 xuất hiện trước, hãy thực hiện sao chép dữ liệu ban đầu từ bản chính và trong bước 4, chúng tôi muốn nô lệ 2 xuất hiện tiếp theo và sao chép dữ liệu từ nô lệ 1. Với các triển khai, bạn không thể đảm bảo đơn hàng đó. Với việc triển khai, tất cả các nhóm của quá trình triển khai sẽ xuất hiện cùng một lúc. Vì vậy, bước đầu tiên không thể được triển khai với Triển khai. Như chúng ta đã thấy khi làm việc với các triển khai, các nhóm xuất hiện với các tên ngẫu nhiên. Vì vậy, điều đó sẽ không giúp chúng tôi ở đây. Ngay cả khi chúng tôi quyết định chỉ định một trong những nhóm này làm chính và sử dụng tên của nó để định cấu hình các nô lệ, nếu POD đó gặp sự cố và việc triển khai tạo ra một nhóm mới ở vị trí đó, nó sẽ xuất hiện một tên nhóm hoàn toàn mới. Và bây giờ các nô lệ đang trỏ đến một địa chỉ không tồn tại. Và vì tất cả những điều này, các bước còn lại không thể thực hiện được. Và đó là lúc các bộ trạng thái phát huy tác dụng. Bộ trạng thái tương tự như bộ triển khai, vì chúng tạo POD dựa trên một mẫu. Nhưng với một số khác biệt. Với các bộ trạng thái, các nhóm được tạo theo thứ tự tuần tự. Sau khi nhóm đầu tiên được triển khai, nó phải ở trạng thái đang chạy và sẵn sàng trước khi nhóm tiếp theo được triển khai. Vì vậy, điều đó giúp chúng tôi đảm bảo rằng cái chính được triển khai trước rồi đến nô lệ 1 và sau đó là nô lệ 2. Và điều đó giúp chúng tôi với các bước 1 và 4. Các bộ trạng thái chỉ định một chỉ mục thứ tự duy nhất cho mỗi POD – một số bắt đầu từ 0 cho nhóm đầu tiên và số gia tăng bởi 1. Mỗi Pod nhận một tên bắt nguồn từ chỉ mục này, kết hợp với tên tập hợp trạng thái. Vì vậy, nhóm đầu tiên nhận mysql-0, nhóm thứ hai mysql-1 và mysql-2 thứ ba. VẬY không có tên ngẫu nhiên nữa. Bạn có thể tin tưởng vào những cái tên này trong tương lai. Chúng tôi có thể chỉ định nhóm có tên mysql-0 là chính và bất kỳ nhóm nào khác là nô lệ. Pod mysql-2 biết rằng nó phải thực hiện sao chép dữ liệu ban đầu từ pod mysql-1. Nếu bạn mở rộng quy mô bằng cách triển khai một pod khác, mysql-3, thì nó sẽ biết rằng nó có thể thực hiện một bản sao từ mysql-2. Để kích hoạt sao chép liên tục, bây giờ bạn có thể trỏ các nô lệ tới cái chính tại mysql-0. Ngay cả khi cái gốc không thành công và nhóm được tạo lại được tạo, nó vẫn có cùng tên. Các tập hợp trạng thái duy trì một danh tính cố định cho mỗi nhóm của chúng. Và những điều này giúp ích cho các bước còn lại. Cái chính bây giờ luôn là cái chính và có sẵn tại địa chỉ mysql-0. Và đó là lý do tại sao bạn cần các bộ trạng thái. Trong các bài giảng sắp tới, chúng ta sẽ nói nhiều hơn về việc tạo các bộ trạng thái, các dịch vụ không đầu, các khối lượng liên tục và hơn thế nữa. Truy cập toàn bộ khóa học tại đây: KubernetesTutorial Kubernetes.

Xem thêm:  Máy Bán Hàng Tự Động Tiếng Nhật Là Gì

Container Deployment

Container cực kỳ dễ dàng để chạy, những bạn dev hoàn toàn có thể dùng container để tạo ra môi ngôi trường để dev hoàn hảo trong vài giây, tuy rằng nhiên Khi dùng container ở môi ngôi trường production thì không đơn giản và giản dị như vậy. Điều đó không có tức là bản thân các container ko hữu ích. Các container đã trở nên trọng tâm chủ yếu của không ít công ty muốn tiền phong trong đưa đổi số và có tốc độ ra đôi mắt dịch vụ mới mẻ nhanh chóng.

Các bạn đang theo dõi chuyên mục công nghệ

Web site: sapovietnam.com

Nội dung được đăng lại từ internet. Vui lòng để lại lời nhắn nếu muốn đóng góp/ý kiến về nội dung video.

About huongsales

Check Also

Thiết lập cụm Kubernetes 3 nút phiên bản 1.22 từ đầu, trên các phiên bản Ubuntu

Kubernetes Là Gì? Vai Trò Và Các Thuật Ngữ Phổ Biến Kubernetes (viết tắt là …

24 comments

  1. wonderful explanation. thank you

  2. Simply explained sir thank you…..

  3. Aboubacar Alain DIOUBATE

    Why Master sand Slaves ? and not ( "Primary pods" and "secondary pods" ? Is this a cultural BIAS ???
    Is it ethic to do so ?

  4. Hussein Refaat

    thanksssss

  5. Shantanu Paranjpe

    Very good explaination…Thanks mumshaad…

  6. good explanation. Question – how does K8 preserve statefulness if a stateful pod crashes and is replaced by another pod?

  7. thank you, i love you. May Allah bless India.

  8. Anil Kommalapati

    Hi Sir – Appreciate if you can provide with another simple example if possible. I think this is quite complicate one .

  9. I dont think this is correct. You have master0 as the master. If master0 goes down ….. the replica/slave should become the new master (i.e mysql-1) and master0 should transition to slave.

  10. syed saifulla

    Good explaination

  11. Gangadhar Rao

    Hello Sir, Nice video. Please share any video's on Helm charts getting started with Kubernetes clusters, , Thanks…

  12. Isn't this a non-database example? Like a CDN? I mean, you can only write data to mysql-master and only read data on any of the nodes. What kind of database is that? You might be hand-waving many details here around mysql replication. But in general, this is a bad example, too much confusion and miss applied concepts.

  13. jignesh kagadada

    Play at 1.25x speed.

  14. this was very helpful! Thank you.

  15. Ashwani Kumar

    Hi Mumshad,
    Thanks for the great session. As you said in Statefulset if any POD goes down, it comes up with same name I.e. MySQL-0 in your example, how does this newly constructed pod sync the data? It might have lost all the data when it went down, even if it uses persistent storage, it might have missed some new data during the period when it was down??

  16. Hi Mumshad.
    Your explanation is awesome..

    I have one doubt here on how pods get dynamically assigned to IP address.
    which component in K8S allocates the IPs to PODs.
    Kindly answer.

  17. Fz-s saravanan

    Need your help. I have created "nfs server pod" instead of local nfs installation then created the PV. In PersistentVolume, I have mentioned the NFS server's service name
    like:
    apiVersion: v1

    kind: PersistentVolume
    metadata:

    name: nfs
    spec:
    capacity:
    storage: 10Gi
    accessModes:
    – ReadWriteMany
    nfs:
    server: nfs-server.default.svc.cluster.local

    path: "/

    NOW I want to bind this PersistentVolume in Statefulset VolumeClaimTemplate in GCP.. How do we mention it?
    I gave like this in statefulset
    volumeClaimTemplates:
    – metadata:
    name: data
    spec:
    accessModes: ["ReadWriteOnce"]
    resources:
    requests:
    storage: 10Gi
    the problem is if I gave the above example it will be created a new one, not bound with my PV… I hope you understand what I am trying to say.. else let me know. Thanks in advance

  18. Your stateful set has different capabilities. The master (mysql-0) in your example is writable where the others aren't.
    As you have differences why not 2 charts. mysql-master with a replica count of 1 and mysql-replica with a replica count that can scale? For the replica's connecting to the master use the service name instead of the hostname?

  19. Bipin Jethwani

    Mumshad you are cool. Nice set of videos. Thanks for making it so simple and easy to understand.

  20. Great explanation, thank you mumshad

  21. Néstor Reverón

    Thanks master!

  22. great video!

  23. sir its understanding but with practical will give me the much understanding

Leave a Reply