1. 程式人生 > 其它 >1、本機叢集kind

1、本機叢集kind

安裝kubectl

1.22.4

安裝kind(預設kubernetes版本為1.21.1)

go install sigs.k8s.io/kind@v0.11.1

保持docker在執行狀態,建立叢集

kind create cluster

儲存 kubernetes config 下來

kind get kubeconfig > ~/kubeconfig.config

vscode 通過 kubernetes 外掛可以連線到各個叢集

命令列連線叢集

// 設定叢集地址檔案
export KUBECONFIG=~/kubeconfig.config

// 使用
kubectl cluster-info

// 刪除地址檔案 unset KUBECONFIG

工作負載

Pod(邏輯上的物理主機)

一般一個Pod執行一個conatianer。一個Pod執行多個container的話是sidecar模式

新建a.yaml檔案,拉取映象執行

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 4
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      
- name: nginx image: nginx ports: - containerPort: 80 resources: limits: cpu: 100m memory: 128Mi

執行

kubectl apply -f a.yaml

檢視當前執行的pods

kubectl get pods

利用外掛,登入到pod例項

命令列登入到pod

// 先獲取pod例項名稱
kubectl get pods

// 登入進入
kubectl exec -it nginx-deployment-8f6948fdf-6zrfz -- sh

// nginx-deployment-8f6948fdf-6zrfz 是 pod 名稱

管理叢集上的nginx服務

新建b.yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80

執行

kubectl apply -f b.yaml 

檢視叢集執行的服務

kubectl get svc

測試

// 登入遠端
kubectl exec -it nginx-deployment-8f6948fdf-6zrfz -- sh

// 測試 nginx-service 有沒有啟動
curl nginx-service

Deployment

刪除叢集上的 pods 及 deployment

kubectl delete deployment --all

// 檢視
kubectl get pods

叢集物理層

節點

kubernetes master

control plane

網路

服務:基於DNS服務發現

負載均衡:基於iptable的負載均衡