Rumah >pangkalan data >Redis >Penjelasan terperinci tentang aplikasi Redis dalam Kubernetes
Kubernetes ialah sistem orkestrasi kontena moden. Skala dan kebolehpercayaannya yang kukuh sudah pasti sangat penting untuk pembangunan dan operasi serta kakitangan penyelenggaraan. Salah satu aplikasi utama ialah Redis Sebagai gabungan cache dan pangkalan data berprestasi tinggi, aplikasi Redis dalam Kubernetes telah menarik lebih banyak perhatian. Artikel ini akan memperkenalkan aplikasi Redis dalam Kubernetes secara terperinci dan menggunakan kes praktikal untuk menggambarkan cara menggunakan, mengurus dan memantau aplikasi kelompok Redis pada platform Kubernetes.
Redis ialah pangkalan data NoSQL berprestasi tinggi yang juga digunakan secara meluas sebagai perkhidmatan caching. Ia menyokong pelbagai struktur data, termasuk rentetan, cincang, senarai, set, set tersusun, dsb. Redis mencapai prestasi tinggi dan masa tindak balas yang pantas dengan menyimpan data dalam ingatan. Berbanding dengan pangkalan data tradisional yang disimpan pada cakera, Redis boleh bertindak balas kepada permintaan pertanyaan dengan lebih pantas dan boleh mengendalikan konkurensi tinggi dan sejumlah besar operasi tulis dengan baik.
Kubernetes ialah sistem orkestrasi kontena untuk mengatur, menskala dan mengurus kontena Docker. Ia menyediakan pelbagai ciri, seperti pengimbangan beban, penemuan perkhidmatan, penskalaan automatik dan naik taraf rolling, dsb. Ciri ini boleh menjadikan penggunaan dan pengurusan bekas Docker lebih mudah dan lebih dipercayai.
Kluster Redis boleh digunakan dalam Kubernetes dengan menggunakan StatefulSet dan Deployment. StatefulSet ialah penyelesaian penggunaan kluster stateful dalam Kubernetes, sesuai untuk aplikasi teratur yang memerlukan pengenalan unik dan identiti rangkaian yang stabil. Penerapan lebih sesuai untuk aplikasi tanpa kewarganegaraan, dan ia boleh mengurus operasi dengan lebih fleksibel seperti penciptaan, kemas kini dan pemadaman bekas.
Apabila menggunakan gugusan Redis, anda perlu memberi perhatian kepada isu berikut:
Mari perkenalkan secara terperinci cara menggunakan StatefulSet dan Deployment untuk menggunakan Redis dalam Kubernetes.
3.1 Gunakan StatefulSet untuk menggunakan Redis
Apabila menggunakan Redis menggunakan StatefulSet, anda perlu membuat persediaan berikut:
bind 0.0.0.0 port 6379 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 cluster-announce-ip $(MY_POD_IP) cluster-announce-port 6379 cluster-announce-bus-port 6380
Contoh fail penerangan StatefulSet:
apiVersion: apps/v1beta2 kind: StatefulSet metadata: name: redis-cluster spec: serviceName: "redis-cluster" replicas: 3 selector: matchLabels: app: redis-cluster template: metadata: labels: app: redis-cluster spec: containers: - name: redis image: redis:latest args: ["redis-server", "/redis-config/redis.conf"] ports: - containerPort: 6379 name: redis volumeMounts: - name: redis-data mountPath: /data - name: redis-config mountPath: /redis-config readinessProbe: tcpSocket: port: redis initialDelaySeconds: 5 periodSeconds: 10 env: - name: MY_POD_IP valueFrom: fieldRef: fieldPath: status.podIP volumes: - name: redis-data persistentVolumeClaim: claimName: redis-data - name: redis-config configMap: name: redis-config volumeClaimTemplates: - metadata: name: redis-data spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 1Gi
Dengan mencipta volum storan berterusan bernama redis-data, dan Melekapkannya pada / direktori data bekas Redis memastikan bahawa data Redis masih wujud apabila bekas itu dipadamkan atau dibuat semula. Replika parameter dalam fail penerangan StatefulSet mentakrifkan bilangan kejadian Redis untuk dimulakan.
3.2 Gunakan Redis menggunakan kaedah Deployment
Apabila menggunakan Redis menggunakan kaedah Deployment, anda perlu membuat persediaan berikut:
Tulis fail konfigurasi Redis;bind 0.0.0.0 port 6379 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 cluster-announce-ip $(MY_POD_IP) cluster-announce-port 6379 cluster-announce-bus-port 6380Contoh fail perihalan agihan:
apiVersion: apps/v1 kind: Deployment metadata: name: redis spec: selector: matchLabels: app: redis replicas: 3 template: metadata: labels: app: redis spec: containers: - name: redis image: redis:latest args: ["redis-server", "/redis-config/redis.conf"] ports: - containerPort: 6379 name: redis volumeMounts: - name: redis-config mountPath: /redis-config readinessProbe: tcpSocket: port: redis initialDelaySeconds: 5 periodSeconds: 10 env: - name: MY_POD_IP valueFrom: fieldRef: fieldPath: status.podIP volumes: - name: redis-config configMap: name: redis-configDalam fail penerangan Deployment, tetapkan bilangan kejadian bekas Redis kepada 3 , gunakan configMap melekapkan fail konfigurasi Redis.
Urus gugusan Redis dalam Kubernetes
Bagaimana untuk menjalankan antara- komunikasi kelompok;
- name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: STATEFUL_SET_NAME value: "redis-cluster" - name: MASTER_NAME value: "redis-cluster-0.redis-cluster.headless.default.svc.cluster.local"Antaranya, POD_NAMESPACE dan STATEFUL_SET_NAME digunakan untuk menetapkan ruang nama dan nama set status gugusan Redis. MASTER_NAME ialah nama nod Induk yang digunakan untuk menetapkan gugusan Redis. 4.2 Pengimbangan BebanDalam Kubernetes, anda boleh menggunakan Perkhidmatan untuk mengikat berbilang nod gugusan Redis ke IP dan port yang sama. Dengan cara ini, gugusan Redis boleh dimuatkan seimbang dalam gugusan Kubernetes sambil mengekalkan ketersediaan gugusan yang tinggi.
apiVersion: v1 kind: Service metadata: name: redis spec: selector: app: redis ports: - name: redis-service port: 6379 targetPort: 6379 clusterIP: NoneDalam fail perihalan Perkhidmatan, clusterIP ditetapkan kepada Tiada, yang akan mencipta Perkhidmatan Tanpa Kepala ini tidak akan mencipta ClusterIP untuk nod Redis, tetapi memajukan permintaan terus ke setiap nod IP. Ini membolehkan pengimbangan beban kelompok dalam Kubernetes sambil mengekalkan ketersediaan tinggi kelompok Redis. 4.3 Pemantauan dan nyahpepijat Redis Terdapat banyak cara untuk memantau dan nyahpepijat gugusan Redis dalam Kubernetes. Sebagai contoh, anda boleh menggunakan alat pemantauan seperti Papan Pemuka Kubernetes atau Prometheus untuk memantau dan log status berjalan Redis dalam masa nyata. Pada masa yang sama, anda boleh menggunakan alat baris arahan Kubectl untuk mengurus gugusan Redis, seperti melihat status gugusan, menambah atau memadam nod dan operasi lain.
Dengan menggunakan StatefulSet dan Deployment dalam Kubernetes, kami boleh menggunakan gugusan Redis dalam Kubernetes dengan mudah dan memastikan pengimbangan beban dan ketersediaan yang tinggi. Kubernetes menyediakan pelbagai alatan pengurusan yang membolehkan kami mengurus penciptaan, kemas kini dan pemadaman gugusan Redis dengan lebih mudah. Dalam persekitaran pengeluaran sebenar, ia perlu dikonfigurasikan dan diselaraskan mengikut keperluan perniagaan tertentu untuk memastikan kestabilan dan prestasi tinggi kelompok Redis.
Atas ialah kandungan terperinci Penjelasan terperinci tentang aplikasi Redis dalam Kubernetes. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!