कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें
एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed का उपयोग करता है। क्या थी?
Kubernetes सर्वरों के एक समूह में कंटेनरीकृत अनुप्रयोगों के प्रबंधन के लिए Google द्वारा विकसित एक खुला स्रोत मंच है। यह एक-डेढ़ दशक के अनुभव पर बनाता है जो Google के पास बड़े पैमाने पर कंटेनरों के क्लस्टर चलाने के साथ है , और डेवलपर्स को Google शैली के बुनियादी ढांचे के साथ प्रदान करता है, जैसे कि सबसे अच्छी नस्ल के ओपन-सोर्स प्रोजेक्ट्स का लाभ उठाना, जैसे:
कुबेरनेट्स डेवलपर्स को अपने एप्लिकेशन इन्फ्रास्ट्रक्चर को यम एलएलएल फाइलों और सार जैसे पॉड्स, आरसी और सर्विसेज (अधिक बाद में) के माध्यम से परिभाषित करने देता है और यह सुनिश्चित करता है कि अंतर्निहित क्लस्टर हर समय उपयोगकर्ता द्वारा परिभाषित स्थिति से मेल खाता है।
इसकी कुछ विशेषताओं में शामिल हैं:
यदि आप पहले से ही कुबेरनेट से परिचित हैं, तो संस्थापन के लिए आगे बढ़ें।
Kubernetes डेवलपर्स को निम्नलिखित सार (तार्किक इकाइयाँ) प्रदान करता है:
यह कुबेरनेट्स वर्कलोड की मूल इकाई है। एक फली एक कंटेनरीकृत वातावरण में एक अनुप्रयोग-विशिष्ट "लॉजिकल होस्ट" मॉडल करती है। आम शब्दों में, यह उन अनुप्रयोगों या सेवाओं के समूह को मॉडल करता है जो पूर्व-कंटेनर दुनिया में एक ही सर्वर पर चलते थे। एक पॉड के अंदर कंटेनर समान नेटवर्क नामस्थान साझा करते हैं और साथ ही डेटा वॉल्यूम साझा कर सकते हैं।
पॉड्स कई कंटेनरों को तार्किक अनुप्रयोग इकाइयों में समूहित करने के लिए महान हैं, लेकिन वे सर्वर की विफलता के मामले में प्रतिकृति या पुनर्निर्धारण की पेशकश नहीं करते हैं।
यह वह जगह है जहां एक प्रतिकृति नियंत्रक या आरसी काम आता है। एक RC यह सुनिश्चित करती है कि दिए गए सेवा के कई पॉड हमेशा क्लस्टर के पार चल रहे हैं।
वे कुंजी-मूल्य मेटाडेटा हैं जो किसी भी कुबेरनेट संसाधन (पॉड्स, आरसी, सेवाओं, नोड्स, ...) से जुड़ा हो सकता है।
फली और प्रतिकृति नियंत्रक एक क्लस्टर में अनुप्रयोगों को तैनात करने और वितरित करने के लिए बहुत अच्छे हैं, लेकिन फली में अल्पकालिक आईपी होते हैं जो पुनर्निर्धारण या कंटेनर पुनरारंभ पर बदलते हैं।
एक कुबेरनेट्स सेवा एक प्रतिकृति नियंत्रक द्वारा प्रबंधित पॉड्स के समूह के लिए एक स्थिर समापन बिंदु (मेजबान सर्वरों के लिए निश्चित वर्चुअल आईपी + पोर्ट बाइंडिंग) प्रदान करती है।
अपने सरलतम रूप में, एक कुबेरनेट्स क्लस्टर दो प्रकार के नोड्स से बना है:
कुबेरनेट्स मास्टर पूरे समूह की नियंत्रण इकाई है।
गुरु के मुख्य घटक हैं:
कुबेरनेट्स नोड वर्कर सर्वर हैं जो पॉड्स चलाने के लिए जिम्मेदार हैं।
एक नोड के मुख्य घटक हैं:
इस गाइड में, हम CentOS 7 सर्वरों का उपयोग करके एक 3 नोड क्लस्टर बनाएंगे:
कुबेरनेट्स नोड्स के लिए एक ही इंस्टॉलेशन प्रक्रिया का पालन करने के बाद आप जितने चाहें उतने अतिरिक्त नोड जोड़ सकते हैं।
होस्टनाम कॉन्फ़िगर करें और /etc/hosts
:
# /etc/hostname
kube-master
# or kube-node1, kube-node2
# append to /etc/hosts
replace-with-master-server-ip kube-master
replace-with-node1-ip kube-node1
replace-with-node2-ip kube-node2
फ़ायरवॉल को अक्षम करें:
systemctl disable firewalld
systemctl stop firewalld
कुबेरनेट मास्टर पैकेज स्थापित करें:
yum install etcd kubernetes-master
विन्यास:
# /etc/etcd/etcd.conf
# leave rest of the lines unchanged
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_LISTEN_PEER_URLS="http://localhost:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
# /etc/kubernetes/config
# leave rest of the lines unchanged
KUBE_MASTER="--master=http://kube-master:8080"
# /etc/kubernetes/apiserver
# leave rest of the lines unchanged
KUBE_API_ADDRESS="--address=0.0.0.0"
KUBE_ETCD_SERVERS="--etcd_servers=http://kube-master:2379"
प्रारंभ करें LCD:
systemctl start etcd
फलालैन ओवरले नेटवर्क फैब्रिक को स्थापित और कॉन्फ़िगर करें (यह आवश्यक है ताकि विभिन्न सर्वरों पर चलने वाले कंटेनर एक दूसरे को देख सकें):
yum install flannel
एक फ़लालीन कॉन्फ़िगरेशन फ़ाइल बनाएं ( flannel-config.json
):
{
"Network": "10.20.0.0/16",
"SubnetLen": 24,
"Backend": {
"Type": "vxlan",
"VNI": 1
}
}
Etcd सर्वर में फलालैन कॉन्फ़िगरेशन सेट करें:
etcdctl set coreos.com/network/config < flannel-config.json
बिंदु Flannel Etcd सर्वर के लिए:
# /etc/sysconfig/flanneld
FLANNEL_ETCD="http://kube-master:2379"
सेवाओं को सक्षम करें ताकि वे बूट पर शुरू हों:
systemctl enable etcd
systemctl enable kube-apiserver
systemctl enable kube-controller-manager
systemctl enable kube-scheduler
systemctl enable flanneld
रिबूट सर्वर।
Kubernetes नोड पैकेज स्थापित करें:
yum install docker kubernetes-node
अगले दो चरण बेहतर प्रदर्शन के लिए ओवरले का उपयोग करने के लिए डॉकर को कॉन्फ़िगर करेंगे। अधिक जानकारी के लिए इस ब्लॉग पोस्ट पर जाएँ :
वर्तमान docker संग्रहण निर्देशि��ा हटाएं:
systemctl stop docker
rm -rf /var/lib/docker
कॉन्फ़िगरेशन फ़ाइलें बदलें:
# /etc/sysconfig/docker
# leave rest of lines unchanged
OPTIONS='--selinux-enabled=false'
# /etc/sysconfig/docker
# leave rest of lines unchanged
DOCKER_STORAGE_OPTIONS=-s overlay
हमारे पहले से कॉन्फ़िगर मास्टर का उपयोग करने के लिए kube-node1 कॉन्फ़िगर करें:
# /etc/kubernetes/config
# leave rest of lines unchanged
KUBE_MASTER="--master=http://kube-master:8080"
# /etc/kubernetes/kubelet
# leave rest of the lines unchanged
KUBELET_ADDRESS="--address=0.0.0.0"
# comment this line, so that the actual hostname is used to register the node
# KUBELET_HOSTNAME="--hostname_override=127.0.0.1"
KUBELET_API_SERVER="--api_servers=http://kube-master:8080"
फ़्लेनेल ओवरले नेटवर्क फैब्रिक को स्थापित और कॉन्फ़िगर करें (फिर - यह आवश्यक है ताकि विभिन्न सर्वरों पर चलने वाले कंटेनर एक दूसरे को देख सकें):
yum install flannel
बिंदु Flannel Etcd सर्वर के लिए:
# /etc/sysconfig/flanneld
FLANNEL_ETCD="http://kube-master:2379"
सेवाएं सक्षम करें:
systemctl enable docker
systemctl enable flanneld
systemctl enable kubelet
systemctl enable kube-proxy
सर्वर को रिबूट करें।
सर्वर के सभी रिबूट होने के बाद, जांचें कि क्या आपका कुबेरनेट क्लस्टर चालू है:
[root@kube-master ~]# kubectl get nodes
NAME LABELS STATUS
kube-node1 kubernetes.io/hostname=kube-node1 Ready
kube-node2 kubernetes.io/hostname=kube-node2 Ready
सेलेनियम परीक्षण उद्देश्यों के लिए ब्राउज़रों को स्वचालित करने के लिए एक रूपरेखा है। यह किसी भी वेब डेवलपर के शस्त्रागार का एक शक्तिशाली उपकरण है।
सेलेनियम ग्रिड सेलेनियम नोड्स के एक समूह में परीक्षण के स्केलेबल और समानांतर दूरस्थ निष्पादन को सक्षम करता है जो एक केंद्रीय सेलेनियम हब से जुड़ा होता है।
चूँकि सेलेनियम नोड्स स्वयं निष्क्रिय हैं और हमारे द्वारा चलाए जाने वाले नोड्स की मात्रा हमारे परीक्षण कार्यभार के आधार पर लचीली है, यह कुबेरनेट क्लस्टर पर तैनात होने के लिए एक आदर्श उम्मीदवार है।
अगले भाग में, हम 5 एप्लिकेशन कंटेनरों से मिलकर एक ग्रिड तैनात करेंगे:
स्वचालित रूप से प्रतिकृति और स्व-चिकित्सा का प्रबंधन करने के लिए, हम ऊपर सूचीबद्ध प्रत्येक प्रकार के एप्लिकेशन कंटेनर के लिए कुबेरनेट्स प्रतिकृति नियंत्रक बनाएंगे।
डेवलपर्स जो एक स्थिर सेलेनियम हब एंडपॉइंट के साथ परीक्षण चला रहे हैं, उन्हें प्रदान करने के लिए, हम हब प्रतिकृति नियंत्रक से जुड़ी एक कुबेरनेट्स सेवा बनाएंगे।
# selenium-hub-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: selenium-hub
spec:
replicas: 1
selector:
name: selenium-hub
template:
metadata:
labels:
name: selenium-hub
spec:
containers:
- name: selenium-hub
image: selenium/hub
ports:
- containerPort: 4444
तैनाती:
[root@kube-master ~]# kubectl create -f selenium-hub-rc.yaml
replicationcontrollers/selenium-hub
[root@kube-master ~]# kubectl get rc
CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
selenium-hub selenium-hub selenium/hub name=selenium-hub 1
[root@kube-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
selenium-hub-pilc8 1/1 Running 0 50s
[root@kube-master ~]# kubectl describe pod selenium-hub-pilc8
Name: selenium-hub-pilc8
Namespace: default
Image(s): selenium/hub
Node: kube-node2/45.63.16.92
Labels: name=selenium-hub
Status: Running
Reason:
Message:
IP: 10.20.101.2
Replication Controllers: selenium-hub (1/1 replicas created)
Containers:
selenium-hub:
Image: selenium/hub
State: Running
Started: Sat, 24 Oct 2015 16:01:39 +0000
Ready: True
Restart Count: 0
Conditions:
Type Status
Ready True
Events:
FirstSeen LastSeen Count From SubobjectPath Reason Message
Sat, 24 Oct 2015 16:01:02 +0000 Sat, 24 Oct 2015 16:01:02 +0000 1 {scheduler } scheduled Successfully assigned selenium-hub-pilc8 to kube-node2
Sat, 24 Oct 2015 16:01:05 +0000 Sat, 24 Oct 2015 16:01:05 +0000 1 {kubelet kube-node2} implicitly required container POD pulled Successfully pulled Pod container image "gcr.io/google_containers/pause:0.8.0"
Sat, 24 Oct 2015 16:01:05 +0000 Sat, 24 Oct 2015 16:01:05 +0000 1 {kubelet kube-node2} implicitly required container POD created Created with docker id 6de00106b19c
Sat, 24 Oct 2015 16:01:05 +0000 Sat, 24 Oct 2015 16:01:05 +0000 1 {kubelet kube-node2} implicitly required container POD started Started with docker id 6de00106b19c
Sat, 24 Oct 2015 16:01:39 +0000 Sat, 24 Oct 2015 16:01:39 +0000 1 {kubelet kube-node2} spec.containers pulled Successfully pulled image "selenium/hub"
Sat, 24 Oct 2015 16:01:39 +0000 Sat, 24 Oct 2015 16:01:39 +0000 1 {kubelet kube-node2} spec.containers created Created with docker id 7583cc09268c
Sat, 24 Oct 2015 16:01:39 +0000 Sat, 24 Oct 2015 16:01:39 +0000 1 {kubelet kube-node2} spec.containers started Started with docker id 7583cc09268c
यहां हम देख सकते हैं कि कुबेरनेट्स ने मेरे सेलेनियम-हब कंटेनर को क्यूब-नोड 2 पर रखा है।
# selenium-hub-service.yaml
apiVersion: v1
kind: Service
metadata:
name: selenium-hub
spec:
type: NodePort
ports:
- port: 4444
protocol: TCP
nodePort: 30000
selector:
name: selenium-hub
तैनाती:
[root@kube-master ~]# kubectl create -f selenium-hub-service.yaml
You have exposed your service on an external port on all nodes in your
cluster. If you want to expose this service to the external internet, you may
need to set up firewall rules for the service port(s) (tcp:30000) to serve traffic.
See http://releases.k8s.io/HEAD/docs/user-guide/services-firewalls.md for more details.
services/selenium-hub
[root@kube-master ~]# kubectl get services
NAME LABELS SELECTOR IP(S) PORT(S)
kubernetes component=apiserver,provider=kubernetes <none> 10.254.0.1 443/TCP
selenium-hub <none> name=selenium-hub 10.254.124.73 4444/TCP
सेवा को तैनात करने के बाद, यह निम्नलिखित से उपलब्ध होगा:
(दूसरे कुबेरनेट्स नोड के सार्वजनिक आईपी का उपयोग करके)
फ़ायरफ़ॉक्स नोड प्रतिकृति नियंत्रक:
# selenium-node-firefox-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: selenium-node-firefox
spec:
replicas: 2
selector:
name: selenium-node-firefox
template:
metadata:
labels:
name: selenium-node-firefox
spec:
containers:
- name: selenium-node-firefox
image: selenium/node-firefox
ports:
- containerPort: 5900
env:
- name: HUB_PORT_4444_TCP_ADDR
value: "replace_with_service_ip"
- name: HUB_PORT_4444_TCP_PORT
value: "4444"
तैनाती:
बदलें replace_with_service_ip
में selenium-node-firefox-rc.yaml
वास्तविक सेलेनियम हब सेवा आईपी के साथ, इस मामले 10.254.124.73 में।
[root@kube-master ~]# kubectl create -f selenium-node-firefox-rc.yaml
replicationcontrollers/selenium-node-firefox
[root@kube-master ~]# kubectl get rc
CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
selenium-hub selenium-hub selenium/hub name=selenium-hub 1
selenium-node-firefox selenium-node-firefox selenium/node-firefox name=selenium-node-firefox 2
[root@kube-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
selenium-hub-pilc8 1/1 Running 1 1h
selenium-node-firefox-lc6qt 1/1 Running 0 2m
selenium-node-firefox-y9qjp 1/1 Running 0 2m
[root@kube-master ~]# kubectl describe pod selenium-node-firefox-lc6qt
Name: selenium-node-firefox-lc6qt
Namespace: default
Image(s): selenium/node-firefox
Node: kube-node2/45.63.16.92
Labels: name=selenium-node-firefox
Status: Running
Reason:
Message:
IP: 10.20.101.3
Replication Controllers: selenium-node-firefox (2/2 replicas created)
Containers:
selenium-node-firefox:
Image: selenium/node-firefox
State: Running
Started: Sat, 24 Oct 2015 17:08:37 +0000
Ready: True
Restart Count: 0
Conditions:
Type Status
Ready True
Events:
FirstSeen LastSeen Count From SubobjectPath Reason Message
Sat, 24 Oct 2015 17:08:13 +0000 Sat, 24 Oct 2015 17:08:13 +0000 1 {scheduler } scheduled Successfully assigned selenium-node-firefox-lc6qt to kube-node2
Sat, 24 Oct 2015 17:08:13 +0000 Sat, 24 Oct 2015 17:08:13 +0000 1 {kubelet kube-node2} implicitly required container POD pulled Pod container image "gcr.io/google_containers/pause:0.8.0" already present on machine
Sat, 24 Oct 2015 17:08:13 +0000 Sat, 24 Oct 2015 17:08:13 +0000 1 {kubelet kube-node2} implicitly required container POD created Created with docker id cdcb027c6548
Sat, 24 Oct 2015 17:08:13 +0000 Sat, 24 Oct 2015 17:08:13 +0000 1 {kubelet kube-node2} implicitly required container POD started Started with docker id cdcb027c6548
Sat, 24 Oct 2015 17:08:36 +0000 Sat, 24 Oct 2015 17:08:36 +0000 1 {kubelet kube-node2} spec.containers pulled Successfully pulled image "selenium/node-firefox"
Sat, 24 Oct 2015 17:08:36 +0000 Sat, 24 Oct 2015 17:08:36 +0000 1 {kubelet kube-node2} spec.containers created Created with docker id 8931b7f7a818
Sat, 24 Oct 2015 17:08:37 +0000 Sat, 24 Oct 2015 17:08:37 +0000 1 {kubelet kube-node2} spec.containers started Started with docker id 8931b7f7a818
[root@kube-master ~]# kubectl describe pod selenium-node-firefox-y9qjp
Name: selenium-node-firefox-y9qjp
Namespace: default
Image(s): selenium/node-firefox
Node: kube-node1/185.92.221.67
Labels: name=selenium-node-firefox
Status: Running
Reason:
Message:
IP: 10.20.92.3
Replication Controllers: selenium-node-firefox (2/2 replicas created)
Containers:
selenium-node-firefox:
Image: selenium/node-firefox
State: Running
Started: Sat, 24 Oct 2015 17:08:13 +0000
Ready: True
Restart Count: 0
Conditions:
Type Status
Ready True
Events:
FirstSeen LastSeen Count From SubobjectPath Reason Message
Sat, 24 Oct 2015 17:08:13 +0000 Sat, 24 Oct 2015 17:08:13 +0000 1 {scheduler } scheduled Successfully assigned selenium-node-firefox-y9qjp to kube-node1
Sat, 24 Oct 2015 17:08:13 +0000 Sat, 24 Oct 2015 17:08:13 +0000 1 {kubelet kube-node1} implicitly required container POD pulled Pod container image "gcr.io/google_containers/pause:0.8.0" already present on machine
Sat, 24 Oct 2015 17:08:13 +0000 Sat, 24 Oct 2015 17:08:13 +0000 1 {kubelet kube-node1} implicitly required container POD created Created with docker id ea272dd36bd5
Sat, 24 Oct 2015 17:08:13 +0000 Sat, 24 Oct 2015 17:08:13 +0000 1 {kubelet kube-node1} implicitly required container POD started Started with docker id ea272dd36bd5
Sat, 24 Oct 2015 17:08:13 +0000 Sat, 24 Oct 2015 17:08:13 +0000 1 {kubelet kube-node1} spec.containers created Created with docker id 6edbd6b9861d
Sat, 24 Oct 2015 17:08:13 +0000 Sat, 24 Oct 2015 17:08:13 +0000 1 {kubelet kube-node1} spec.containers started Started with docker id 6edbd6b9861d
जैसा कि हम देख सकते हैं, कुबेरनेट्स ने 2 प्रतिकृतियां बनाई हैं selenium-firefox-node
और इसने उन्हें क्लस्टर में वितरित किया है। पॉड selenium-node-firefox-lc6qt
, क्यूब-नोड 2 पर है, जबकि पॉड selenium-node-firefox-y9qjp
क्यूब-नोड 1 पर है।
हम अपने सेलेनियम क्रोम नोड्स के लिए उसी प्रक्रिया को दोहराते हैं।
क्रोम नोड प्रतिकृति नियंत्रक:
# selenium-node-chrome-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: selenium-node-chrome
labels:
app: selenium-node-chrome
spec:
replicas: 2
selector:
app: selenium-node-chrome
template:
metadata:
labels:
app: selenium-node-chrome
spec:
containers:
- name: selenium-node-chrome
image: selenium/node-chrome
ports:
- containerPort: 5900
env:
- name: HUB_PORT_4444_TCP_ADDR
value: "replace_with_service_ip"
- name: HUB_PORT_4444_TCP_PORT
value: "4444"
तैनाती:
[root@kube-master ~]# kubectl create -f selenium-node-chrome-rc.yaml
replicationcontrollers/selenium-node-chrome
[root@kube-master ~]# kubectl get rc
CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
selenium-hub selenium-hub selenium/hub name=selenium-hub 1
selenium-node-chrome selenium-node-chrome selenium/node-chrome app=selenium-node-chrome 2
selenium-node-firefox selenium-node-firefox selenium/node-firefox name=selenium-node-firefox 2
[root@kube-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
selenium-hub-pilc8 1/1 Running 1 1h
selenium-node-chrome-9u1ld 1/1 Running 0 1m
selenium-node-chrome-mgi52 1/1 Running 0 1m
selenium-node-firefox-lc6qt 1/1 Running 0 11m
selenium-node-firefox-y9qjp 1/1 Running 0 11m
इस मार्गदर्शिका में, हमने 3 सर्वर (1 मास्टर कंट्रोलर + 2 वर्कर) का एक छोटा कुबेरनेट समूह बनाया है।
पॉड्स, आरसी और एक सेवा का उपयोग करते हुए, हमने सफलतापूर्वक एक केंद्रीय हब और 4 नोड्स वाले सेलेनियम ग्रिड को तैनात किया है, जिससे डेवलपर्स क्लस्टर पर एक बार में 4 समवर्ती सेलेनियम परीक्षण चलाने में सक्षम होते हैं।
कुबेरनेट्स ने स्वचालित रूप से पूरे क्लस्टर में कंटेनरों को निर्धारित किया।
यदि हमारे सर्वर में से एक या अधिक नीचे जाते हैं तो कुबेरनेट्स स्वचालित रूप से स्वस्थ सर्वरों में पॉड्स को फिर से आकार देते हैं। मेरे उदाहरण में, kube-node2 वर्तमान में सेलेनियम हब पॉड और 1 सेलेनियम फ़ायरफ़ॉक्स नोड पॉड चला रहा है।
[root@kube-node2 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5617399f146c selenium/node-firefox "/opt/bin/entry_poin 5 minutes ago Up 5 minutes k8s_selenium-node-firefox.46e635d8_selenium-node-firefox-zmj1r_default_31c89517-7a75-11e5-8648-5600001611e0_baae8e00
185230a3b431 gcr.io/google_containers/pause:0.8.0 "/pause" 5 minutes ago Up 5 minutes k8s_POD.3805e8b7_selenium-node-firefox-zmj1r_default_31c89517-7a75-11e5-8648-5600001611e0_40f809df
fdd5834c249d selenium/hub "/opt/bin/entry_poin About an hour ago Up About an hour k8s_selenium-hub.cb8bf0ed_selenium-hub-pilc8_default_6c98c1ff-7a68-11e5-8648-5600001611e0_5765e2c9
00e4ccb0bda8 gcr.io/google_containers/pause:0.8.0 "/pause" About an hour ago Up About an hour k8s_POD.3b3ee8b9_selenium-hub-pilc8_default_6c98c1ff-7a68-11e5-8648-5600001611e0_8398ac33
हम क्यूब-नोड 2 को बंद करके सर्वर की विफलता का अनुकरण करेंगे। कुछ मिनटों के बाद, आपको देखना चाहिए कि क्यूब-नोड 2 पर जो कंटेनर चल रहे थे, उन्हें क्यूब-नोड 1 में फिर से शेड्यूल किया गया है, जिससे सेवा का न्यूनतम व्यवधान सुनिश्चित होता है।
[root@kube-node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5bad5f582698 selenium/hub "/opt/bin/entry_poin 19 minutes ago Up 19 minutes k8s_selenium-hub.cb8bf0ed_selenium-hub-hycf2_default_fe9057cf-7a76-11e5-8648-5600001611e0_ccaad50a
dd1565a94919 selenium/node-firefox "/opt/bin/entry_poin 20 minutes ago Up 20 minutes k8s_selenium-node-firefox.46e635d8_selenium-node-firefox-g28z5_default_fe932673-7a76-11e5-8648-5600001611e0_fc79f977
2be1a316aa47 gcr.io/google_containers/pause:0.8.0 "/pause" 20 minutes ago Up 20 minutes k8s_POD.3805e8b7_selenium-node-firefox-g28z5_default_fe932673-7a76-11e5-8648-5600001611e0_dc204ad2
da75a0242a9e gcr.io/google_containers/pause:0.8.0 "/pause" 20 minutes ago Up 20 minutes k8s_POD.3b3ee8b9_selenium-hub-hycf2_default_fe9057cf-7a76-11e5-8648-5600001611e0_1b10c0e7
c611b68330de selenium/node-firefox "/opt/bin/entry_poin 33 minutes ago Up 33 minutes k8s_selenium-node-firefox.46e635d8_selenium-node-firefox-8ylo2_default_31c8a8f3-7a75-11e5-8648-5600001611e0_922af821
828031da6b3c gcr.io/google_containers/pause:0.8.0 "/pause" 33 minutes ago Up 33 minutes k8s_POD.3805e8b7_selenium-node-firefox-8ylo2_default_31c8a8f3-7a75-11e5-8648-5600001611e0_289cd555
caf4e725512e selenium/node-chrome "/opt/bin/entry_poin 46 minutes ago Up 46 minutes k8s_selenium-node-chrome.362a34ee_selenium-node-chrome-mgi52_default_392a2647-7a73-11e5-8648-5600001611e0_3c6e855a
409a20770787 selenium/node-chrome "/opt/bin/entry_poin 46 minutes ago Up 46 minutes k8s_selenium-node-chrome.362a34ee_selenium-node-chrome-9u1ld_default_392a15a4-7a73-11e5-8648-5600001611e0_ac3f0191
7e2d942422a5 gcr.io/google_containers/pause:0.8.0 "/pause" 47 minutes ago Up 47 minutes k8s_POD.3805e8b7_selenium-node-chrome-9u1ld_default_392a15a4-7a73-11e5-8648-5600001611e0_f5858b73
a3a65ea99a99 gcr.io/google_containers/pause:0.8.0 "/pause" 47 minutes ago Up 47 minutes k8s_POD.3805e8b7_selenium-node-chrome-mgi52_default_392a2647-7a73-11e5-8648-5600001611e0_20a70ab6
कुबेरनेट्स के साथ अपने सेलेनियम ग्रिड को स्केल करना बेहद आसान है। कल्पना कीजिए कि 2 फ़ायरफ़ॉक्स नोड्स के बजाय, मैं 4 को चलाना चाहूंगा। एक एकल कमांड के साथ अपस्कलिंग किया जा सकता है:
[root@kube-master ~]# kubectl scale rc selenium-node-firefox --replicas=4
scaled
[root@kube-master ~]# kubectl get rc
CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
selenium-hub selenium-hub selenium/hub name=selenium-hub 1
selenium-node-chrome selenium-node-chrome selenium/node-chrome app=selenium-node-chrome 2
selenium-node-firefox selenium-node-firefox selenium/node-firefox name=selenium-node-firefox 4
[root@kube-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
selenium-hub-pilc8 1/1 Running 1 1h
selenium-node-chrome-9u1ld 1/1 Running 0 14m
selenium-node-chrome-mgi52 1/1 Running 0 14m
selenium-node-firefox-8ylo2 1/1 Running 0 40s
selenium-node-firefox-lc6qt 1/1 Running 0 24m
selenium-node-firefox-y9qjp 1/1 Running 0 24m
selenium-node-firefox-zmj1r 1/1 Running 0 40s
एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed का उपयोग करता है। क्या थी?
FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं
एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा
अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ
RockMongo एक वेब-आधारित MongoDB प्रबंधन उपकरण है जो MySQL प्रबंधन उपकरण के समान है: phpMyAdmin। यह ट्यूटोरियल इंस्टॉलिन की प्रक्रिया को कवर करेगा
एक अलग प्रणाली का उपयोग? आवश्यकताएँ एक Vultr CentOS 7 सर्वर उदाहरण। एक sudo यूजर। चरण 1: सिस्टम को पहले अपडेट करें, अपने सिस्टम सर्वर को वें में अपडेट करें
एक अलग प्रणाली का उपयोग? नेटडाटा रियल-टाइम सिस्टम मेट्रिक्स मॉनिटरिंग के क्षेत्र में एक उभरता हुआ सितारा है। एक ही तरह के अन्य उपकरणों की तुलना में, नेटडाटा:
एक अलग प्रणाली का उपयोग? इस ट्यूटोरियल में, बीमार समझा जा रहा है कि CentOS 7 पर एक स्टारबाउंड सर्वर को कैसे सेटअप किया जाए। आवश्यक शर्तें आपको इस गेम को खुद पर बनाना होगा।
वेब एप्लिकेशन लिखने के लिए Django एक लोकप्रिय पायथन फ्रेमवर्क है। Django के साथ, आप तेजी से अनुप्रयोगों का निर्माण कर सकते हैं, पहिया को फिर से बनाए बिना। अगर आप चाहते हैं
एक अन्य Vultr ट्यूटोरियल में आपका स्वागत है। यहां, आप सीखेंगे कि एसएएमपी सर्वर कैसे स्थापित करें और चलाएं। यह गाइड CentOS 6 के लिए लिखा गया था
Revive Adserver एक स्वतंत्र और खुला स्रोत विज्ञापन सेवारत प्रणाली है जिसका उपयोग वेबसाइटों पर, ऐप्स में और / या वीडियो खिलाड़ियों में विज्ञापनों को प्रबंधित करने के लिए किया जा सकता है। इस लेख में,
पार्स सर्वर पार्स बैकेंड सेवा के लिए खुला स्रोत विकल्प है जिसे बंद किया जा रहा है। यदि आप इस सेवा के प्रशंसक हैं, तो आप अभी भी वें का आनंद ले सकते हैं
एक अलग प्रणाली का उपयोग? एल्ग एक खुला स्रोत सोशल नेटवर्किंग इंजन है जो परिसर के सामाजिक नेटवर्क जैसे सामाजिक वातावरण के निर्माण की अनुमति देता है
एक अलग प्रणाली का उपयोग? डायस्पोरा एक गोपनीयता-जागरूक, ओपन सोर्स सोशल नेटवर्क है। इस ट्यूटोरियल में, आप सीखेंगे कि डायस्पोरा पो को कैसे सेट और कॉन्फ़िगर करें
अवलोकन यह लेख आपको कुबेरनेट क्लस्टर प्राप्त करने और कुछ ही समय में कुबेदम के साथ चलने में मदद करने के लिए है। यह गाइड दो सर्वरों को तैनात करेगा
परिचय लिनक्स सिस्टम पर काम करने का मतलब है कि कोई कमांड लाइन का उपयोग अधिक बार नहीं कर रहा है। स्वागत के रूप में बार-बार लंबी निर्देशिका के नाम टाइप करना
ओपनकार्ट एक लोकप्रिय ओपन सोर्स शॉपिंग कार्ट सॉल्यूशन है जिसे उत्कृष्ट कार्यक्षमता, उपयोग में आसानी और उपस्थिति प्रदान करने के लिए डिज़ाइन किया गया है। OpenCart के साथ, आप सीए
एक अलग प्रणाली का उपयोग? परिचय Sails.js Node.js के लिए MVC फ्रेमवर्क है, जो रूबी ऑन रेल्स के समान है। यह आधुनिक अनुप्रयोगों को विकसित करने के लिए बनाता है
एक अलग प्रणाली का उपयोग? NGINX को HTTP / HTTPS सर्वर, रिवर्स प्रॉक्सी सर्वर, मेल प्रॉक्सी सर्वर, लोड बैलेंसर, TLS टर्मिनेटर, या कैचिन के रूप में उपयोग किया जा सकता है
एक अलग प्रणाली का उपयोग? dotCMS जावा में लिखा एक ओपन सोर्स एंटरप्राइज ग्रेड कंटेंट मैनेजमेंट सिस्टम है। इसमें लगभग हर सुविधा आवश्यक टी होती है
LiteCart PHP, jQuery और HTML में लिखा गया एक स्वतंत्र और ओपन सोर्स शॉपिंग कार्ट प्लेटफॉर्म है। यह ई-कॉमर्स सॉफ्टवेअर का उपयोग करने के लिए एक सरल, हल���का और आसान है
एनएफएस एक नेटवर्क-आधारित फाइल सिस्टम है जो कंप्यूटरों को कंप्यूटर नेटवर्क पर फाइलों तक पहुंचने की अनुमति देता है। यह मार्गदर्शिका बताती है कि आप एनएफ पर फ़ोल्डर्स को कैसे उजागर कर सकते हैं
एक अलग प्रणाली का उपयोग? माटोमो (पूर्व में पिविक) एक ओपन सोर्स एनालिटिक्स प्लेटफॉर्म है, जो गूगल एनालिटिक्स का एक खुला विकल्प है। Matomo स्रोत को होस्ट किया गया है
टीमटॉक एक कॉन्फ्रेंसिंग प्रणाली है जो उपयोगकर्ताओं को उच्च-गुणवत्ता वाले ऑडियो / वीडियो वार्तालाप, टेक्स्ट चैट, स्थानांतरण फ़ाइलें और स्क्रीन साझा करने की अनुमति देती है। यह मैं
परिचय यह आलेख बताएगा कि विंडोज सर्वर 2012 पर गारस मोड सर्वर को कैसे डाउनलोड और इंस्टॉल किया जाए। यह गाइड गहराई में होने के लिए बनाया गया है।
एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed का उपयोग करता है। क्या थी?
FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं
एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा
Vultr अपने VPS को कॉन्फ़िगर करने, स्थापित करने और उपयोग करने के लिए कई अलग-अलग तरीके प्रदान करता है। क्रेडेंशियल एक्सेस करें आपके VPS के लिए डिफ़ॉल्ट एक्सेस क्रेडेंशियल ar
अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ