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 6380
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-config
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"
apiVersion: v1 kind: Service metadata: name: redis spec: selector: app: redis ports: - name: redis-service port: 6379 targetPort: 6379 clusterIP: None
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!