Kubernetes是Google開源的一個容器編排引擎,它支持自動化部署、大規(guī)??缮炜s、應用容器化管理。在生產(chǎn)環(huán)境中部署一個應用程序時,通常要部署該應用的多個實例以便對應用請求進行負載均衡。
永定網(wǎng)站建設公司創(chuàng)新互聯(lián)公司,永定網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為永定上千提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務好的永定做網(wǎng)站的公司定做!
在Kubernetes中,我們可以創(chuàng)建多個容器,每個容器里面運行一個應用實例,然后通過內(nèi)置的負載均衡策略,實現(xiàn)對這一組應用實例的管理、發(fā)現(xiàn)、訪問,而這些細節(jié)都不需要運維人員去進行復雜的手工配置和處理
K8S 的資源有 Pod、Service、Volume、Namespace、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job等等
What
,即應用最終要達到的狀態(tài)。主機 | IP地址 |
---|---|
master | 192.168.1.21 |
node01 | 192.168.1.22 |
node02 | 192.168.1.23 |
[root@master ~]# cd /etc/kubernetes/manifests/
//k8s的yml、yaml文件
docker pull nginx
//下載nginx鏡像
[root@master ~]# kubectl run test-web --image=nginx --replicas=5
//創(chuàng)建Pod控制器,deployment
[root@master ~]# kubectl get deployments.
//查看控制器情況
[root@master ~]# kubectl get pod --all-namespaces -o wide
//顯示pod的節(jié)點信息
[root@master ~]# kubectl get namespaces
//查看k8s名稱空間
[root@master ~]# kubectl describe deployments. test-web
//查看資源詳細信息
查看某種資源對象,沒有指定名稱空間,默認是在default名稱空間??梢约由?n選項,查看指定名稱空間的資源。
[root@master ~]# kubectl get pod -n kube-system
[root@master ~]# kubectl delete deployments. test-web
[root@master ~]# kubectl run web --image=nginx --replicas=5
[root@master ~]# kubectl get pod -o wide
//查看一下pod的節(jié)點信息
[root@master ~]# kubectl describe deployments. web
//查看資源詳細信息
注意:直接運行創(chuàng)建的deployment資源對象,是經(jīng)常使用的一個控制器資源類型,除了deployment,還有rc、rs等等pod控制器,deployment是一個高級的pod控制器。
[root@master ~]# curl 10.244.1.7
[root@master ~]# kubectl expose deployment web --name=web-xgp --port=80 --type=NodePort
//創(chuàng)建service資源類型,這里我們設置了映射端口
如果想要外網(wǎng)能夠訪問服務,可以暴露deployment資源,得到service資源,但svc資源的類型必須為NodePort。
映射端口范圍:30000-32767
[root@master ~]# kubectl get svc
[root@master ~]# kubectl get deployments. -o wide
[root@master ~]# kubectl scale deployment web --replicas=8
[root@master ~]# kubectl get deployments. -o wide
[root@master ~]# kubectl scale deployment web --replicas=4
[root@master ~]# kubectl get deployments. -o wide
[root@master ~]# kubectl get deployments. -o yaml > web.yaml
[root@master ~]# kubectl edit deployments. web
[root@master ~]# kubectl get deployments. -o wide
[root@master ~]# docker pull nginx:1.15
[root@master ~]# kubectl set image deployment web web=nginx:1.15
[root@master ~]# kubectl edit deployments. web
[root@master ~]# kubectl get deployments. -o wide
[root@master ~]# kubectl rollout undo deployment web
注意:只能回滾到上一次操作的狀態(tài)
主機 | IP地址 | 服務 |
---|---|---|
master | 192.168.1.21 | registry+Deployment |
node01 | 192.168.1.22 | |
node02 | 192.168.1.23 |
[root@master ~]# docker pull httpd
[root@master xgp]# vim Dockerfile
FROM httpd
COPY index.html /usr/local/apache2/htdocs/index.html
[root@master xgp]#echo "xgp | test-web | httpd:v1" > index.html
[root@master xgp]# docker build -t web1 .
[root@master xgp]#echo "xgp | test-web | httpd:v1" > index.html
[root@master xgp]# docker build -t web2 .
[root@master xgp]# echo "xgp | test-web | httpd:v3" > index.html
[root@master xgp]# docker build -t web3 .
[root@master ~]# docker pull registry
[root@master xgp]# docker run -itd --name registry -p 5000:5000 --restart=always registry:latest
[root@master xgp]# vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.1.21:5000
[root@master xgp]# systemctl daemon-reload
[root@master xgp]# systemctl restart docker
[root@master xgp]# docker tag web1:latest 192.168.1.21:5000/web1:latest
[root@master xgp]# docker tag web2:latest 192.168.1.21:5000/web2:latest
[root@master xgp]# docker tag web3:latest 192.168.1.21:5000/web3:latest
[root@master xgp]# docker push 192.168.1.21:5000/web1:latest
[root@master xgp]# docker push 192.168.1.21:5000/web2:latest
[root@master xgp]# docker push 192.168.1.21:5000/web3:latest
[root@master xgp]# kubectl run www1 --image=192.168.1.21:5000/web1:latest --replicas=6
[root@master xgp]# kubectl get pod
[root@master xgp]# kubectl expose deployment www1 --name=web-xgp --port=80 --type=NodePort
[root@master xgp]# kubectl get svc
[root@master xgp]# kubectl scale deployment www1 --replicas=8
[root@master xgp]# kubectl get deployments. -o wide
[root@master ~]# kubectl get deployments. -o yaml > www1.yaml
[root@master ~]# kubectl edit deployments. www1
[root@master xgp]# kubectl get deployments. -o wide
[root@master ~]# kubectl set image deployment www1 www1=192.168.1.21:5000/web2
[root@master ~]# curl 127.0.0.1:30996
xgp | test-web | httpd:v2
[root@master ~]# kubectl edit deployments. www1
[root@master ~]# kubectl get deployments. -o wide
[root@master ~]# kubectl rollout undo deployment www1
注意:只能回滾到上一次操作的狀態(tài)
____完畢____