发布一个k8s部署视频:https://edu.csdn.net/course/detail/26967
课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。
腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518
第二个视频发布 https://edu.csdn.net/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.csdn.net/course/detail/27574
详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件
————————————————------------------------------------------------------------------------------------------------------------------
'''
Created on 2017-1-6
@author: admin
'''
def buildHeap(source,parent):
if left(parent)>=len(source):
return
elif right(parent)>=len(source):
if source[parent]>source[left(parent)]:
tmp=source[parent]
source[parent]=source[left(parent)]
source[left(parent)]=tmp
buildHeap(source, left(parent))
else:
buildHeap(source, left(parent))
buildHeap(source, right(parent))
if source[parent]>source[left(parent)] and source[parent]>source[right(parent)]:
if source[left(parent)]<source[right(parent)]:
tmp=source[parent]
source[parent]=source[left(parent)]
source[left(parent)]=tmp
buildHeap(source, left(parent))
else:
tmp=source[parent]
source[parent]=source[right(parent)]
source[right(parent)]=tmp
buildHeap(source, right(parent))
elif source[parent]>source[left(parent)]:
tmp=source[parent]
source[parent]=source[left(parent)]
source[left(parent)]=tmp
buildHeap(source, left(parent))
elif source[parent]>source[right(parent)]:
tmp=source[parent]
source[parent]=source[right(parent)]
source[right(parent)]=tmp
buildHeap(source, right(parent))
def left(parent):
return parent*2+1
def right(parent):
return parent*2+2
def heapFye(source,parent,last):
if left(parent)>last:
return
elif right(parent)>last:
if source[parent]>source[left(parent)]:
tmp=source[parent]
source[parent]=source[left(parent)]
source[left(parent)]=tmp
heapFye(source, left(parent),last)
else:
if source[parent]>source[left(parent)] and source[parent]>source[right(parent)]:
if source[left(parent)]<source[right(parent)]:
tmp=source[parent]
source[parent]=source[left(parent)]
source[left(parent)]=tmp
heapFye(source, left(parent),last)
else:
tmp=source[parent]
source[parent]=source[right(parent)]
source[right(parent)]=tmp
heapFye(source, right(parent),last)
elif source[parent]>source[left(parent)]:
tmp=source[parent]
source[parent]=source[left(parent)]
source[left(parent)]=tmp
heapFye(source, left(parent),last)
elif source[parent]>source[right(parent)]:
tmp=source[parent]
source[parent]=source[right(parent)]
source[right(parent)]=tmp
heapFye(source, right(parent),last)
def heapSort(source):
buildHeap(source,0)
for i in reversed(range(len(source))):
tmp=source[0]
source[0]=source[i]
source[i]=tmp
heapFye(source, 0,i-1)
def printData(source):
for i in range(len(source)):
print(source[i],end=",")
if __name__ == '__main__':
source=[19,6,1,18,3,11,20,17,15,22,17,14,31,112]
heapSort(source)
printData(source)
优化版
''' Created on 2017-1-6 @author: admin ''' def buildHeap(source,parent): if left(parent)>=len(source): return elif right(parent)>=len(source): if source[parent]>source[left(parent)]: swapAndRecLeft(source,parent) else: buildHeap(source, left(parent)) buildHeap(source, right(parent)) if source[parent]>source[left(parent)] and source[parent]>source[right(parent)]: if source[left(parent)]<source[right(parent)]: swapAndRecLeft(source,parent) else: swapAndRecRight(source,parent) elif source[parent]>source[left(parent)]: swapAndRecLeft(source,parent) elif source[parent]>source[right(parent)]: swapAndRecRight(source,parent) def swapAndRecLeft(source,parent): tmp=source[parent] source[parent]=source[left(parent)] source[left(parent)]=tmp buildHeap(source, left(parent)) def swapAndRecRight(source,parent): tmp=source[parent] source[parent]=source[right(parent)] source[right(parent)]=tmp buildHeap(source, right(parent)) def left(parent): return parent*2+1 def right(parent): return parent*2+2 def swapAndHeapFyeLeft(source,parent,last): tmp=source[parent] source[parent]=source[left(parent)] source[left(parent)]=tmp heapFye(source, left(parent),last) def swapAndHeapFyeRight(source,parent,last): tmp=source[parent] source[parent]=source[right(parent)] source[right(parent)]=tmp heapFye(source, right(parent),last) def heapFye(source,parent,last): if left(parent)>last: return elif right(parent)>last: if source[parent]>source[left(parent)]: swapAndHeapFyeLeft(source,parent,last) else: if source[parent]>source[left(parent)] and source[parent]>source[right(parent)]: if source[left(parent)]<source[right(parent)]: swapAndHeapFyeLeft(source,parent,last) else: swapAndHeapFyeRight(source,parent,last) elif source[parent]>source[left(parent)]: swapAndHeapFyeLeft(source,parent,last) elif source[parent]>source[right(parent)]: swapAndHeapFyeRight(source,parent,last) def heapSort(source): buildHeap(source,0) for i in reversed(range(len(source))): tmp=source[0] source[0]=source[i] source[i]=tmp heapFye(source, 0,i-1) def printData(source): for i in range(len(source)): print(source[i],end=",") if __name__ == '__main__': source=[19,6,1,18,3,11,20,17,15,22,17,14,31,112] heapSort(source) printData(source)