发布一个k8s部署视频:https://edu.youkuaiyun.com/course/detail/26967
课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。
腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518
第二个视频发布 https://edu.youkuaiyun.com/course/detail/27109
腾讯课堂连接地址https://ke.qq.com/course/484107?tuin=ba64518
介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange,endpoint,event,conponentstatus,node,apiservice,controllerRevision等。
第三个视频发布:https://edu.youkuaiyun.com/course/detail/27574
详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件
————————————————------------------------------------------------------------------------------------------------------------------
package com.sort;
import java.util.ArrayList;
import java.util.List;
public class BucketSort {
public static void bucketSort(double [] data){
List<Double>[] b=new ArrayList[data.length];
for(int i=0;i<b.length;i++){
b[i]=new ArrayList<Double>();
}
for(int i=0;i<data.length;i++){
b[(int)Math.floor(data.length*data[i])].add(data[i]);
}
for(int i=0;i<data.length;i++){
insertSort(b[i]);
}
int k=0;
for(int i=0;i<b.length;){
for(int j=0;j<b[k].size();j++){
data[i]=b[k].get(j);
i++;
}
k++;
}
}
private static void insertSort(List<Double> source){
for(int i=0;i<source.size();i++){
for(int j=0;j<i;j++){
if(source.get(i)<source.get(j)){
double tmp=source.get(j);
source.set(j, source.get(i));
if(i-j==1){
source.set(i, tmp);
}else{
for(int k=i;k>=j+2;k--){
source.set(k, source.get(k-1));
}
source.set(j+1, tmp);
}
}
}
}
}
public static void main(String[] args) {
double [] data=new double[]{0.1,0.3,0.2,0.88,0.87,0.33,0.37,0.35};
for(int i=0;i<data.length;i++){
System.out.print(data[i]+" ");
}
System.out.println();
bucketSort(data);
for(int i=0;i<data.length;i++){
System.out.print(data[i]+" ");
}
System.out.println();
}
}