Kubernetes — контейнерленген қосымшаларды басқаруға арналған қуатты платформа, ол қосымшаларды орнатуды, масштабтауды және басқаруды автоматтандыруға мүмкіндік береді. Kubernetes-тің негізгі мүмкіндіктерінің бірі - жоғары қолжетімділік пен ақауға төзімділікті қамтамасыз ететін репликация.
Бұл мақалада біз Kubernetes-те репликацияны қалай пайдалану керектігін, ReplicaSet және Deployment дегеніміз не екенін, сондай-ақ қосымшаларыңыз үшін репликацияны қалай орнату және басқару керектігін қарастырамыз.
Kubernetes-тегі репликация дегеніміз не?
Kubernetes-тегі репликация контейнерлердің белгілі бір санының (репликалардың) жұмысын қамтамасыз етуді білдіреді, бұл қосымшалардың тұрақтылығы мен қолжетімділігін қамтамасыз ету үшін қажет. Егер бір экземпляр істен шықса, Kubernetes қажетті репликалар санын сақтау үшін автоматты түрде жаңа экземпляр жасайды.
Негізгі тұжырымдамалар
ReplicaSet
ReplicaSet — бұл белгілі бір подтардың берілген саны кез келген уақытта жұмыс істеп тұрғанын қамтамасыз ететін Kubernetes контроллері. ReplicaSet подтардың күйін бақылайды және қажет болған жағдайда оларды жасайды немесе жояды.
ReplicaSet конфигурациясының мысалы:
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: my-replicaset
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: my-image:latest
ports:
- containerPort: 80
Deployment
Deployment — бұл подтардың репликациясын басқару үшін ReplicaSet қолданатын жоғары деңгейдегі абстракция. Deployment қосымшаларды оңай жаңартуға және олардың нұсқаларын басқаруға мүмкіндік береді.
Deployment конфигурациясының мысалы:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: my-image:latest
ports:
- containerPort: 80
Репликацияны орнату және басқару
ReplicaSet жасау
ReplicaSet жасау үшін YAML манифестін файлға, мысалы replicaset.yaml
, сақтап, оны kubectl
командасы арқылы қолдану керек:
kubectl apply -f replicaset.yaml
Қолданғаннан кейін ReplicaSet күйін тексеруге болады:
kubectl get replicasets
kubectl get pods
ReplicaSet жаңарту
ReplicaSet конфигурациясын жаңарту үшін YAML манифестін өзгертіп, оны қайта қолдану керек:
kubectl apply -f replicaset.yaml
Өзгерістерді тексеру үшін келесі командаларды пайдалануға болады:
kubectl describe replicasets my-replicaset
kubectl get pods
Deployment жасау
Deployment жасау YAML манифестін, мысалы deployment.yaml
, қолдану арқылы да жүзеге асады:
kubectl apply -f deployment.yaml
Deployment күйін тексеру үшін:
kubectl get deployments
kubectl get pods
Deployment масштабтау
Репликалар санын өзгерту үшін kubectl scale
командасын пайдалануға болады:
kubectl scale deployment my-deployment --replicas=5
Нәтижені тексеру:
kubectl get deployments
kubectl get pods
Deployment жаңарту
Контейнерлерді Deployment-те жаңарту үшін YAML манифестіндегі бейнені өзгерту және өзгертулерді қолдану жеткілікті:
spec:
template:
spec:
containers:
- name: my-container
image: my-image:new-version
Өзгертулерді қолданыңыз:
kubectl apply -f deployment.yaml
Жаңартуды тексеру:
kubectl rollout status deployment my-deployment
kubectl get pods
Kubernetes RollingUpdate стратегиясын пайдаланып, тоқтаусыз жаңартуды автоматты түрде орындайды.
Үздік тәжірибелер
-
ReplicaSet орнына Deployment пайдаланыңыз: Deployment подтардың нұсқаларын басқару және автоматты түрде жаңарту мүмкіндіктерін көбірек ұсынады.
-
RollingUpdate көмегімен тоқтаусыз жұмыс істеу уақытын азайтыңыз: Deployment-те RollingUpdate стратегиясын орнатыңыз, жаңартулар біртіндеп орындалады, бұл тоқтап қалуды болдырмайды.
-
Ресурстарды және шектеулерді орнату: Контейнерлер үшін
requests
жәнеlimits
анықтаңыз, кластердің барлық ресурстарын бір контейнердің пайдаланбауын қамтамасыз ету үшін.yamlresources: requests: memory: "64Mi" cpu: "250m" limits: memory: "128Mi" cpu: "500m"
-
Liveness және Readiness Probes қолданыңыз: Подтардың күйін және олардың трафикті өңдеуге дайын екендігін анықтау үшін тексерулерді орнатыңыз.
yamllivenessProbe: httpGet: path: /healthz port: 8080 initialDelaySeconds: 3 periodSeconds: 3 readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 3 periodSeconds: 3
-
Жаңартулар және қайтарулар: Жаңартулар мен қайтаруларды басқару үшін
kubectl rollout
командаларын пайдаланыңыз.bashkubectl rollout history deployment my-deployment kubectl rollout undo deployment my-deployment
-
Мониторинг және лог жүргізу: Кластер мен қосымшалардың күйін бақылау үшін Prometheus және Grafana сияқты мониторинг құралдарын пайдаланыңыз. Контейнерлердің журналдарын алу үшін
kubectl logs
пайдаланыңыз.bashkubectl logs <pod-name> kubectl logs -f <pod-name> # Журналдарды нақты уақыт режимінде қадағалау
Қорытынды
Kubernetes-тегі репликация — бұл қосымшалардың жоғары қолжетімділігі мен ақауға төзімділігін қамтамасыз ететін негізгі функция. ReplicaSet және Deployment пайдалану арқылы контейнерлердің репликациясын оңай басқаруға, қосымшаларды масштабтауға және тоқтаусыз жаңартуларды орындауға болады.
Жоғарыда келтірілген қадамдар мен үздік тәжірибелерді ұстана отырып, сіз Kubernetes-те репликацияны тиімді пайдалана аласыз.
Реклама Google |
![]() |
Назар аударыңыз! Бұл мақала ресми құжат емес.Ақпаратты сақтықпен және сынақ ортасында пайдалану керек.
Заманауи сақтық көшірме жасау, репликациялау, деректерді синхрондау және төлемдік бағдарламадан қорғау жүйелерін құру туралы сұрақтарыңыз болса, қазіргі заманғы деректердің сақтық көшірмесін жасау және қалпына келтіру технологиялары бойынша кеңес алу үшін біздің компанияға хабарласыңыз . Біздің компанияның осы салада 20 жылдан астам тәжірибесі бар. |
Қазақстандағы резервтік көшірудің ең жақсы он тәжірибесі
- oVirt гипервизорын қорғау — терең талдау
- oVirt жүйесінен Proxmox жүйесіне виртуалды машинаны көшіру
- Proxmox-тан oVirt-ке виртуалды машинаны көшіру
- Kubernetes контейнерлерін қорғау — терең талдау
- Proxmox гипервизорын бұзудан қалай қорғауға болады - Терең талдау
- Fail2Ban-ды oVirt жүйесін қорғауда қолдану - Терең талдау
- oVirt гипервизорын сақтандыруды ұйымдастыру — Терең талдау
- Виртуалды машинаны гипервизорлар арасында Proxmox арқылы көшіру
- Proxmox гипервизорын виртуалды машиналардың оңтайлы жұмысын қамтамасыз ету үшін конфигурациялау
- Proxmox-те SSH арқылы root құқықтарының бұзылуынан қорғау: терең талдау