亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

kubernetes創建資源有哪些方式

發布時間:2020-06-10 15:23:42 來源:億速云 閱讀:188 作者:元一 欄目:云計算

Kubernetes概述

Kubernetes是Google開源的一個容器編排引擎,它支持自動化部署、大規模可伸縮、應用容器化管理。在生產環境中部署一個應用程序時,通常要部署該應用的多個實例以便對應用請求進行負載均衡

在Kubernetes中,我們可以創建多個容器,每個容器里面運行一個應用實例,然后通過內置的負載均衡策略,實現對這一組應用實例的管理、發現、訪問,而這些細節都不需要運維人員去進行復雜的手工配置和處理。

Kubernetes 特點

可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)

可擴展: 模塊化,插件化,可掛載,可組合

自動化: 自動部署,自動重啟,自動復制,自動伸縮/擴展

Kubernetes 組件

1Master 組件

1.1kube-apiserver

1.2ETCD

1.3kube-controller-manager

1.4cloud-controller-manager

1.5kube-scheduler

1.6插件 addons

1.6.1DNS

1.6.2用戶界面

1.6.3容器資源監測

1.6.4Cluster-level Logging

2節點(Node)組件

2.1kubelet

2.2kube-proxy

2.3docker

2.4RKT

2.5supervisord

2.6fluentd

創建資源的兩種方式
1用命令行的方式創建:
了解*
?json格式

[root@master manifests]# pwd
/etc/kubernetes/manifests
[root@master manifests]# vim etcd.yaml

17行:

  • --data-dir=/var/lib/etcd

1.3臺導入鏡像:nginx.tar httpd.tar
docker load < httpd.tar && docker load < nginx.tar
全部更新鏡像:
docker pull nginx
//創建pod控制器,deployment
[root@master ~]# kubectl run web --image=nginx --replicas=5
//查看控制器情況
[root@master ~]# kubectl get deployments.
kubernetes創建資源有哪些方式

[root@master ~]# kubectl get pod
kubernetes創建資源有哪些方式

//查看資源詳細信息
[root@master ~]# kubectl describe deployments. web
//查看命名空間
[root@master ~]# kubectl get namespaces 簡寫: kubectl get ns
kubernetes創建資源有哪些方式

[root@master ~]# kubectl get pod --all-namespaces
Ps:查看某種資源對象,沒有指定名稱空間,默認是在defaule名稱空間。可以加上-n選項,查看指定名稱空間的資源。
例如:查看本地資源的名稱空間:
[root@master ~]# kubectl get pod -n kube-system
//刪除pod,但是還會有
[root@master ~]# kubectl delete pod  web-59765d756f-45zp6
//刪除控制器,pod也沒了
[root@master ~]# kubectl delete deployments. test-web
//查看詳細信息:
[root@master ~]# kubectl get pod -o wide
[root@master ~]# kubectl describe pod web-59765d756f-bctvr
[root@master ~]# kubectl get rs
kubernetes創建資源有哪些方式

[root@master ~]# kubectl describe rs web-59765d756f
注意:直接運行創建的Deployment資源對象,時經常使用的一個控制器資源類型,除了deployment,還有rc,rs等pod控制器,Deployment是一個高級的pod控制器。
[root@master ~]# kubectl get pod -o wide
kubernetes創建資源有哪些方式

[root@master ~]# curl 10.244.2.4

創建service資源類型
[root@master ~]# kubectl get deployments.
kubernetes創建資源有哪些方式

[root@master ~]# kubectl expose deployment web --name=web-svc --port=80 --type=NodePort
kubernetes創建資源有哪些方式

//查看service資源類型
[root@master ~]# kubectl get svc
kubernetes創建資源有哪些方式

[root@master ~]# curl 127.0.0.1:31351
[root@master ~]# curl 10.102.189.154
kubernetes創建資源有哪些方式
kubernetes創建資源有哪些方式
kubernetes創建資源有哪些方式

PS:如果想要外網能夠訪問服務,可以暴露deployment資源,得到service資源,但svc資源的類型必須為NodePort。
映射端口:3000-32767
服務的擴容與縮容
kubernetes創建資源有哪些方式

[root@master ~]# kubectl scale deployment web --replicas=8
kubernetes創建資源有哪些方式

輸出為json和yaml格式
[root@master ~]# kubectl get deployments. -o json

[root@master ~]# kubectl get deployments. -o yaml
導出:
[root@master ~]# kubectl get deployments. -o yaml > web.yaml
[root@master ~]# kubectl edit deployments. web
kubernetes創建資源有哪些方式

kubernetes創建資源有哪些方式

服務的升級與回滾:
//升級:
[root@master ~]# docker pull nginx:1.15

[root@master ~]# docker pull nginx:1.14
[root@master ~]# docker tag nginx:latest nginx:v1
[root@master ~]# kubectl set image deployment web web=nginx:1.15

kubernetes創建資源有哪些方式
[root@master ~]# kubectl get deployments. -o wide

[root@master ~]# kubectl get pod

[root@master ~]# kubectl get pod -o wide

[root@master ~]# kubectl get deployments. -o wide

[root@master ~]# kubectl describe pod web-ccc7c5cd6-7jlnx
[root@master ~]# kubectl edit deployments. web
kubernetes創建資源有哪些方式

//回滾:
[root@master ~]# kubectl rollout undo deployment web
kubernetes創建資源有哪些方式

實驗:
sha作業:
1)基于httpd制作自己的鏡像,需要3個版本,v1,v2,v3.并且對應的版本鏡像,訪問的主目錄內容不一樣,分別為v1:  
<h2>xxx | test-web | httpd | v1<h2>

[root@master ~]# mkdir {v1,v2,v3}
[root@master ~]# cd v1
[root@master v1]# echo "<h2>songkaixiong | test-web | httpd | v1<h2>" >> index.html
[root@master v1]# cat index.html
<h2>songkaixiong | test-web | httpd | v1<h2>
[root@master v1]# cat Dockerfile
FROM httpd:latest
COPY index.html /usr/local/apache2/htdocs/index.html
[root@master v1]# docker build -t 192.168.1.10:5000/httpd:v1 .

[root@master ~]# cd ../v2/
[root@master v2]# echo "<h2>songkaixiong | test-web | httpd | v2<h2>" >> index.html
[root@master v2]# cat index.html
<h2>songkaixiong | test-web | httpd | v2<h2>
[root@master v2]# cat Dockerfile
FROM httpd:latest
COPY index.html /usr/local/apache2/htdocs/index.html
[root@master v2]# docker build -t 192.168.1.10:5000/httpd:v2 .

[root@master v2]# cd ../v3
[root@master v3]# echo "<h2>songkaixiong | test-web | httpd | v3<h2>" >> index.html
[root@master v3]# cat index.html
<h2>songkaixiong | test-web | httpd | v3<h2>
[root@master v3]# cat Dockerfile
FROM httpd:latest
COPY index.html /usr/local/apache2/htdocs/index.html
[root@master v3]# docker build -t 192.168.1.10:5000/httpd:v3 .

2)在k8s集群內啟用私有倉庫registry或Harbor。

[root@master v3]# docker pull registry:2
[root@master v3]# docker run -itd --name registry --restart=always -p 5000:5000 registry:2
[root@master v3]# vim /usr/lib/systemd/system/docker.service
13行:
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.1.10:5000
[root@master v3]# systemctl daemon-reload
[root@master v3]# systemctl restart docker
[root@master v3]# scp /usr/lib/systemd/system/docker.service node02:/usr/lib/systemd/system
[root@master v3]# scp /usr/lib/systemd/system/docker.service node03:/usr/lib/systemd/system
[root@node02 ~]# systemctl daemon-reload
[root@node02 ~]# systemctl restart docker
[root@node03 ~]# systemctl daemon-reload
[root@node03 ~]# systemctl restart docker

[root@master v3]# docker push 192.168.1.10:5000/httpd:v1
[root@master v3]# docker push 192.168.1.10:5000/httpd:v2
[root@master v3]# docker push 192.168.1.10:5000/httpd:v3

3)部署一個Deployment資源對象,要求鏡像使用上述私有鏡像v1版本。6個副本Pod。

[root@master ~]# kubectl run httpdtest --image=192.168.1.10:5000/httpd:v1 --replicas=6
kubernetes創建資源有哪些方式
kubernetes創建資源有哪些方式
kubernetes創建資源有哪些方式
4)將上述Deployment暴露一個service資源對象,使外網能否訪問服務。

[root@master ~]# kubectl expose deployment httpdtest --name=httpd-svc --port=80 --type=NodePort
kubernetes創建資源有哪些方式

5)將上述Deployment進行擴容和縮容操作,擴容為8個副本Pod,然后縮容為4個副本Pod。
[root@master ~]# kubectl scale deployment httpdtest --replicas=8
kubernetes創建資源有哪些方式
[root@master ~]# kubectl scale deployment httpdtest --replicas=4
kubernetes創建資源有哪些方式
6)將上述Deployment進行升級與回滾操作,將v1版本,升級到v2版本。
[root@master ~]# kubectl set image deployment httpdtest httpdtest=192.168.1.10:5000/httpd:v2
kubernetes創建資源有哪些方式
[root@master ~]# kubectl rollout undo deployment httpdtest
kubernetes創建資源有哪些方式

2配置清單:

apiVersion:api版本信息

kind:資源對象的類別

metadata:元數據。名稱字段必寫。

spec:用戶期望的狀態。

status:資源現在處于什么樣的狀態。

使用yaml文件的方式創建一個Deployment資源對象,要求鏡像使用個人私有鏡像v1版本。replicas為3個。
[root@master ~]# vim skx.yaml

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: web
spec:
replicas: 3
template:
metadata:
labels:
app: web_server
spec:
containers:

  • name: httpd
    image: 192.168.1.10:5000/httpd:v1
    [root@master ~]# kubectl apply -f skx.yaml

使用yaml文件的方式創建一個Service資源對象,要與上述Deployment資源對象關聯,type類型為: NodePort,端口為:30123.
[root@master ~]# vim skx-svc.yaml
kind: Service
apiVersion: v1
metadata:
name: skx-svc
spec:
type: NodePort
selector:
app: web_server
ports:

  • protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 30123
    [root@master ~]# kubectl apply -f skx-svc.yaml

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海口市| 吴堡县| 公主岭市| 涪陵区| 拉萨市| 谷城县| 新乡县| 巢湖市| 彰化市| 台山市| 津南区| 夏邑县| 塘沽区| 隆安县| 巩留县| 山东省| 聂拉木县| 如皋市| 双峰县| 收藏| 望江县| 邛崃市| 屯昌县| 延安市| 海晏县| 色达县| 大新县| 寻乌县| 安阳县| 启东市| 泽库县| 古丈县| 滁州市| 临洮县| 新龙县| 海林市| 德令哈市| 临朐县| 建阳市| 轮台县| 梁山县|