一、安裝部署
1、以Deployment YAML方式創建Nginx服務
這個yaml文件在網上可以下載
cat nginx-deployment.yaml
apiVersion: apps/v1 #apiVersion是當前配置格式的版本
kind: Deployment #kind是要創建的資源類型,這里是Deploymnet
metadata: #metadata是該資源的元數據,name是必須的元數據項name: nginx-deploymentlabels:app: nginx
spec: #spec部分是該Deployment的規則說明replicas: 3 #relicas指定副本數量,默認為1selector: matchLabels:app: nginxtemplate: #template定義Pod的模板,這是配置的重要部分metadata: #metadata定義Pod的元數據,至少要頂一個label,label的key和value可以任意指定labels:app: nginxspec: #spec描述的是Pod的規則,此部分定義pod中每一個容器的屬性,name和image是必需的containers:- name: nginximage: nginx:1.19.4ports:- containerPort: 80
創建nginx-deployment應用
kubectl create -f nginx-deployment.yaml
查看deployment詳情 (由于需要下載鏡像所有需要等一會才會成功)
kubectl get deployment
kubectl get pod
?這個是正在獲取鏡像
?這個是下載完成的
查看某個pod的詳細信息
kubectl describe pod nginx-deployment-7947dc656-7lfp5
二、創建pod
kubectl run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [--command] -- [COMMAND] [args...] [options]
各選項的作用分別如下所示。
- NAME:指定容器運行的名稱;
- Image:指定運行的基礎鏡像;
- env:指定在容器中設置的環境參數;
- port:指定容器暴露的端口;
- replicas:指定啟動容器設置的副本數;
- dry-run:dry-run 值如果為?true,則只打印要發送的對象,而不發送它;
- overrides:生成對象的內聯?JSON 重寫。如果非空,則用于覆蓋生成的對象。要求對象提供有效的 apiVersion 字段。
kubectl run nginx-deployment --image=nginx:1.19.4 --port=80 --replicas=3
kubectl get pods
?三、發布服務
kubectl expose (-f FILENAME | TYPE NAME) [--port=port] [--protocol=TCP|UDP] [--target -port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] [--type=type]
上述命令語法中,各選項的作用分別如下所示。
- -f:標識公開服務的資源的文件的文件名,目錄或?URL;
- TYPE NAME:指定?deployment 名稱;
- port:指定內部通信端口;
- protocol:指定網絡協議,tcp 或者?udp;
- target-port:指定暴露在外部的端口;
- name:指定最新創建的對象的名稱;
- external-ip:為?service 的外部?IP 地址;
- type:指定此服務的類型 ClusterIP,NodePort,LoadBalancer 或 ExternalName,默認 ClusterIP。
kubectl expose deployment nginx-deployment --port=80 --target-port=80 --name=nginx-service --type=NodePort
kubectl get pods,svc
通過 kubectl expose 命令創建 Service,設置內部通信端口和外部暴露的端口均為 80、名稱為 nginx-service、類型是 NodePort。創建 Service 完后,就可以通過 kubectl get svc命令查看到對外暴露的端口是31749,內部通信的地址是10.96.215.14
執行 kubectl get endpoints 查看容器自帶的負載均衡。從執行結果可以得知容器自帶的負載均衡分別是 10.244.1.4、10.244.1.5、10.244.2.3
kubectl get endpointskubectl get pods 命令時加參數 -o wide 可以查看到 Node 真實節點上的分布
kubectl get pods -o wide