安装helm
curl https://baltocdn.com/helm/signing.asc | sudo apt-key add - sudo apt-get install apt-transport-https --yes echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list sudo apt-get update sudo apt-get install helm
使用二进制版本安装
每一个[版本](https://github.com/helm/helm/releases)
helm提供多种操作系统的二进制版本。这些二进制版本可以手动下载和安装。
root@ubuntu:~/kube-batch# wget https://get.helm.sh/helm-v3.6.2-linux-arm64.tar.gz --2021-07-05 14:44:42-- https://get.helm.sh/helm-v3.6.2-linux-arm64.tar.gz Resolving get.helm.sh (get.helm.sh)... 152.199.39.108, 2606:2800:247:1cb7:261b:1f9c:2074:3c Connecting to get.helm.sh (get.helm.sh)|152.199.39.108|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 12121043 (12M) [application/x-tar] Saving to: ‘helm-v3.6.2-linux-arm64.tar.gz’ helm-v3.6.2-linux-arm64.tar.gz 100%[====================================================================================================================================================>] 11.56M 20.5MB/s in 0.6s 2021-07-05 14:44:43 (20.5 MB/s) - ‘helm-v3.6.2-linux-arm64.tar.gz’ saved [12121043/12121043] root@ubuntu:~/kube-batch# tar -zxvf helm-v3.6.2-linux-arm64.tar.gz linux-arm64/ linux-arm64/helm linux-arm64/LICENSE linux-arm64/README.md root@ubuntu:~/kube-batch# linux-arm64/helm help
root@ubuntu:~/kube-batch# linux-arm64/helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
root@ubuntu:~/kube-batch#
root@ubuntu:~# kubectl get pods -n kube-system NAME READY STATUS RESTARTS AGE calico-kube-controllers-5978c5f6b5-xk6cq 1/1 Running 0 3d18h calico-node-6tc54 1/1 Running 0 3d18h calico-node-blvrv 1/1 Running 0 3d18h calico-node-nwpfl 1/1 Running 0 3d18h calico-node-rswtj 1/1 Running 0 3d18h coredns-546565776c-82jfw 1/1 Running 0 3d18h coredns-546565776c-px8bd 1/1 Running 0 3d18h kube-apiserver-centos7 1/1 Running 0 3d18h kube-apiserver-cloud 1/1 Running 0 3d18h kube-apiserver-ubuntu 1/1 Running 0 3d18h kube-controller-manager-centos7 1/1 Running 0 3d18h kube-controller-manager-cloud 1/1 Running 0 3d18h kube-controller-manager-ubuntu 1/1 Running 147 3d18h kube-proxy-6jk97 1/1 Running 0 3d18h kube-proxy-dpwh6 1/1 Running 0 3d18h kube-proxy-wvdkr 1/1 Running 0 3d18h kube-proxy-xbdlt 1/1 Running 0 3d18h kube-scheduler-centos7 1/1 Running 0 3d18h kube-scheduler-cloud 1/1 Running 0 3d18h kube-scheduler-ubuntu 1/1 Running 131 3d18h
root@ubuntu:~# git clone https://github.com/kubernetes-sigs/kube-batch Cloning into 'kube-batch'... remote: Enumerating objects: 31486, done. remote: Counting objects: 100% (27/27), done. remote: Compressing objects: 100% (24/24), done. remote: Total 31486 (delta 4), reused 14 (delta 2), pack-reused 31459 Receiving objects: 100% (31486/31486), 45.19 MiB | 15.49 MiB/s, done. Resolving deltas: 100% (16025/16025), done. root@ubuntu:~/kube-batch# cd ./deployment/kube-batch/ root@ubuntu:~/kube-batch/deployment/kube-batch# ls Chart.yaml crds templates values.yaml root@ubuntu:~/kube-batch/deployment/kube-batch# cd crds/ root@ubuntu:~/kube-batch/deployment/kube-batch/crds# ls scheduling_v1alpha1_podgroup.yaml scheduling_v1alpha1_queue.yaml scheduling_v1alpha2_podgroup.yaml scheduling_v1alpha2_queue.yaml root@ubuntu:~/kube-batch/deployment/kube-batch/crds#
kubectl create -f scheduling_v1alpha1_podgroup.yaml kubectl create -f scheduling_v1alpha2_podgroup.yaml kubectl create -f scheduling_v1alpha1_queue.yaml kubectl create -f scheduling_v1alpha2_queue.yaml
CustomResourceDefinition
deployment/kube-batch/crds/scheduling_v1alpha1_podgroup.yaml:2:kind: CustomResourceDefinition
deployment/kube-batch/crds/scheduling_v1alpha2_podgroup.yaml:2:kind: CustomResourceDefinition
deployment/kube-batch/crds/scheduling_v1alpha2_queue.yaml:2:kind: CustomResourceDefinition
deployment/kube-batch/crds/scheduling_v1alpha1_queue.yaml:2:kind: CustomResourceDefinition
root@ubuntu:~/kube-batch/deployment# helm install kube-batch --namespace kube-system Error: must either provide a name or specify --generate-name root@ubuntu:~/kube-batch/deployment# cd ~ root@ubuntu:~# helm install ~/kube-batch/deployment/kube-batch --namespace kube-system Error: must either provide a name or specify --generate-name root@ubuntu:~#
root@ubuntu:~# helm install ~/kube-batch/deployment/kube-batch --namespace kube-system --generate-name NAME: kube-batch-1625468018 LAST DEPLOYED: Mon Jul 5 14:53:38 2021 NAMESPACE: kube-system STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: The batch scheduler of Kubernetes. root@ubuntu:~# helm list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION root@ubuntu:~#
root@ubuntu:~# helm list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION root@ubuntu:~# helm list -n kube-system NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION kube-batch-1625468018 kube-system 1 2021-07-05 14:53:38.893184251 +0800 HKT deployed kube-batch-0.4.2 root@ubuntu:~#
root@ubuntu:~/kube-batch# kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system calico-kube-controllers-5978c5f6b5-xk6cq 1/1 Running 0 3d21h kube-system calico-node-6tc54 1/1 Running 0 3d21h kube-system calico-node-blvrv 1/1 Running 0 3d21h kube-system calico-node-nwpfl 1/1 Running 0 3d21h kube-system calico-node-rswtj 1/1 Running 0 3d21h kube-system coredns-546565776c-82jfw 1/1 Running 0 3d21h kube-system coredns-546565776c-px8bd 1/1 Running 0 3d21h kube-system kube-apiserver-centos7 1/1 Running 0 3d21h kube-system kube-apiserver-cloud 1/1 Running 0 3d21h kube-system kube-apiserver-ubuntu 1/1 Running 0 3d21h kube-system kube-batch-7bfddfb67c-pcbb7 0/1 CrashLoopBackOff 4 3m37s kube-system kube-controller-manager-centos7 1/1 Running 0 3d21h
root@ubuntu:~# helm install ~/kube-batch/deployment/kube-batch --namespace kube-system --generate-name Error: rendered manifests contain a resource that already exists. Unable to continue with install: Queue "default" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-name" must equal "kube-batch-1625469168": current value is "kube-batch-1625468018" root@ubuntu:~#
root@ubuntu:~# helm install ~/kube-batch/deployment/kube-batch --namespace kube-system kube-batch-test Error: failed to download "kube-batch-test" (hint: running `helm repo update` may help) root@ubuntu:~# helm install ~/kube-batch/deployment/kube-batch --namespace kube-system --generate-name Error: rendered manifests contain a resource that already exists. Unable to continue with install: Queue "default" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-name" must equal "kube-batch-1625469168": current value is "kube-batch-1625468018" root@ubuntu:~# kubectl get Queue --all-namespaces NAME AGE default 22m root@ubuntu:~# kubectl get Queue --all-namespaces NAME AGE default 22m root@ubuntu:~# kubectl describe Queue default Name: default Namespace: Labels: app.kubernetes.io/managed-by=Helm Annotations: meta.helm.sh/release-name: kube-batch-1625468018 meta.helm.sh/release-namespace: kube-system API Version: scheduling.incubator.k8s.io/v1alpha1 Kind: Queue Metadata: Creation Timestamp: 2021-07-05T06:53:41Z Generation: 1 Managed Fields: API Version: scheduling.incubator.k8s.io/v1alpha1 Fields Type: FieldsV1 fieldsV1: f:metadata: f:annotations: .: f:meta.helm.sh/release-name: f:meta.helm.sh/release-namespace: f:labels: .: f:app.kubernetes.io/managed-by: f:spec: .: f:weight: Manager: Go-http-client Operation: Update Time: 2021-07-05T06:53:41Z Resource Version: 910682 Self Link: /apis/scheduling.incubator.k8s.io/v1alpha1/queues/default UID: 4340f001-f9e6-4757-99a5-72a7a12a0aec Spec: Weight: 1 Events: <none> root@ubuntu:~# kubectl delete Queue default queue.scheduling.incubator.k8s.io "default" deleted root@ubuntu:~# helm install ~/kube-batch/deployment/kube-batch --namespace kube-system --generate-name NAME: kube-batch-1625469492 LAST DEPLOYED: Mon Jul 5 15:18:12 2021 NAMESPACE: kube-system STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: The batch scheduler of Kubernetes. root@ubuntu:~#
cat <<EOF >job-01.yaml apiVersion: batch/v1 kind: Job metadata: name: qj-1 spec: backoffLimit: 6 completions: 6 parallelism: 6 template: metadata: annotations: scheduling.k8s.io/group-name: qj-1 spec: containers: - image: busybox imagePullPolicy: IfNotPresent name: busybox resources: requests: cpu: "1" restartPolicy: Never schedulerName: kube-batch --- apiVersion: scheduling.incubator.k8s.io/v1alpha1 kind: PodGroup metadata: name: qj-1 spec: minMember: 6 EOF
root@ubuntu:~/kube-batch/hack# tree -L 4 ../pkg/apis ../pkg/apis ├── scheduling │ ├── v1alpha1 │ │ ├── doc.go │ │ ├── labels.go │ │ ├── register.go │ │ ├── types.go │ │ └── zz_generated.deepcopy.go │ └── v1alpha2 │ ├── doc.go │ ├── labels.go │ ├── register.go │ ├── types.go │ └── zz_generated.deepcopy.go └── utils └── utils.go 4 directories, 11 files root@ubuntu:~/kube-batch/hack# tree -L 4 ../pkg/client ../pkg/client [error opening dir] 0 directories, 0 files root@ubuntu:~/kube-batch/hack# git checkout ../pkg/client root@ubuntu:~/kube-batch/hack# tree -L 4 ../pkg/client ../pkg/client ├── clientset │ └── versioned │ ├── clientset.go │ ├── doc.go │ ├── fake │ │ ├── clientset_generated.go │ │ ├── doc.go │ │ └── register.go │ ├── scheme │ │ ├── doc.go │ │ └── register.go │ └── typed │ └── scheduling ├── informers │ └── externalversions │ ├── factory.go │ ├── generic.go │ ├── internalinterfaces │ │ └── factory_interfaces.go │ └── scheduling │ ├── interface.go │ ├── v1alpha1 │ └── v1alpha2 └── listers └── scheduling ├── v1alpha1 │ ├── expansion_generated.go │ ├── podgroup.go │ └── queue.go └── v1alpha2 ├── expansion_generated.go ├── podgroup.go └── queue.go 16 directories, 17 files root@ubuntu:~/kube-batch/hack#