一、Kubernetes簡介
Kubernetes,常被稱為K8s,是一個開源的容器編排平台,它最初是由Google創建的,用於管理自己的容器集群。Kubernetes可以自動化部署、縮放和運行應用程序容器。
Kubernetes可以使用高可用性的架構來管理應用程序部署,它可以處理存儲、負載均衡、監控、擴展等多個方面的任務。Kubernetes可以使用容器化的優勢,來使得應用程序更加輕便和可移植。
二、Kubernetes安裝
1、Kubernetes環境準備
在準備開始安裝Kubernetes之前,首先需要準備好以下環境:
1、至少3個以上的Linux主機,且操作系統版本要求保持一致 2、每個節點必須7GB或更多的可用磁碟空間 3、主機之間需要正常的網路和DNS通信
2、Kubernetes部署準備
進行Kubernetes的部署準備,需要執行以下步驟:
1、安裝Docker,從官方網址上下載 2、所有節點上都需要將swapp關閉 3、安裝Kubernetes客戶端kubectl 4、安裝和配置kubelet,從官方網址下載 5、安裝和配置kubeadm,從官方網址下載
3、Kubernetes安裝
部署Kubernetes,需要執行以下步驟:
1、使用kubeadm初始化環境 2、安裝和配置網路插件 3、使用kubectl部署應用程序
三、Kubernetes使用教程
1、k8s使用教程網盤下載
在Kubernetes中,為了部署應用程序,需要使用到編排模板——YAML文件。然而,手動編寫YAML文件可能會引起一些錯誤。最好的解決方案是使用雲服務商提供的網盤進行下載。
2、Kubernetes Dashboard使用教程
Kubernetes Dashboard是Kubernetes的官方Web UI,通過Dashboard,可以方便地查看和管理Kubernetes集群中的應用程序,也可以執行一些對Kubernetes集群進行管理的操作。在進行Kubernetes Dashboard的安裝前,需要先通過以下指令安裝和啟動Dashboard:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml kubectl proxy
然後,在瀏覽器中訪問以下URL,就可以進入Kubernetes Dashboard。
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
3、Kubernetes教程示例:部署nginx
以下是在Kubernetes上部署nginx的示例:
1、創建一個nginx的Deployment
以下是nginx-deployment.yml文件的示例:
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80
將以上內容保存至nginx-deployment.yml文件。
然後使用kubectl創建部署。
kubectl apply -f nginx-deployment.yml
2、創建nginx的service
以下是nginx-service.yml文件的示例:
apiVersion: v1 kind: Service metadata: name: nginx-service spec: selector: app: nginx ports: - name: http port: 80 targetPort: 80 type: NodePort
將以上內容保存至nginx-service.yml文件。
然後,使用kubectl創建服務。
kubectl apply -f nginx-service.yml
接著,可以通過執行以下命令來獲取nginx運行的URL:
minikube service nginx-service --url
最後,在瀏覽器中訪問以上獲取的URL,就可以看到nginx的歡迎頁面了。
4、Kubernetes教程示例:部署應用程序
以下是部署WordPress應用程序的示例:
1、創建WordPress的MySQL
以下是wordpress-mysql.yml文件的示例:
apiVersion: v1 kind: Service metadata: name: mysql labels: app: mysql spec: ports: - port: 3306 selector: app: mysql clusterIP: None --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pv-claim labels: app: mysql spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql:5.6 name: mysql env: - name: MYSQL_ROOT_PASSWORD value: "password" ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim
將以上內容保存至wordpress-mysql.yml文件。
然後使用kubectl創建MySQL服務。
kubectl apply -f wordpress-mysql.yml
2、創建WordPress
以下是wordpress.yml文件的示例:
apiVersion: v1 kind: Service metadata: name: wordpress labels: app: wordpress spec: ports: - port: 80 selector: app: wordpress type: NodePort --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: wp-pv-claim labels: app: wordpress spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: wordpress spec: selector: matchLabels: app: wordpress strategy: type: Recreate template: metadata: labels: app: wordpress spec: containers: - image: wordpress:4.8-apache name: wordpress env: - name: WORDPRESS_DB_HOST value: mysql - name: WORDPRESS_DB_PASSWORD value: "password" ports: - containerPort: 80 name: wordpress volumeMounts: - name: wp-persistent-storage mountPath: /var/www/html volumes: - name: wp-persistent-storage persistentVolumeClaim: claimName: wp-pv-claim
將以上內容保存至wordpress.yml文件。
然後,使用kubectl創建WordPress。
kubectl apply -f wordpress.yml
最後,使用以下命令,在瀏覽器中打開WordPress:
minikube service wordpress --url
四、Kubernetes實用技巧
1、Kubernetes命令行工具kubectl
如果需要在終端中執行一些跟Kubernetes相關的操作,可以使用kubectl命令。
以下是一些kubectl的常用命令:
kubectl get pods # 獲取pod的信息 kubectl get pods -o wide # 獲取pod的詳細信息 kubectl describe pod {pod name} # 獲取pod的詳細信息 kubectl delete pod {pod name} # 刪除pod kubectl logs {pod name} # 獲取pod的日誌 kubectl exec -it {pod name} sh # 進入pod的shell kubectl apply -f {file name} # 通過YAML文件部署應用程序 kubectl edit {resource type} {resource name} # 編輯已有的資源 kubectl expose deployment {deployment name} # 創建服務 kubectl delete service {service name} # 刪除服務
2、Kubernetes Dashboard操作技巧
Kubernetes Dashboard中有幾種快捷方式,可以讓用戶直接訪問常用的操作,例如:
1、Nodes:查看群集中的節點 2、Workloads:查看應用程序的工作負載 3、Services & Ingresses:查看群集中的服務和入口配置 4、Config & Storage:查看配置和存儲 5、查看使用指南和API文檔
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/239479.html