阅读 61

k8s 简介,helm原理

Kubernetes简介

学习页面

Kubernetes:

  它至少需要3个Master节点
  Master节点的主要组件:
   API Server: 主要用来接收其它组件发来的请求,并作出相应的处理.
   Scheduler: 主要负责挑选出一个最佳node节点来运行pod,它挑选合适的node,通常分两个阶段,
    第一个阶段:是先通过初步筛选, 根据运行pod的最大要求,如: 4G内存, 6颗CPU等需求,来做
    初步筛选,假如从20台中选出了3台, 则进入第二阶段,在从这3台中选出一台最符合的节点,
    这时就需要综合考量各种因素,最后将选出了一台最佳运行节点告诉给API Server,在由
    Master节点负责调度Pod在该node节点上运行起来。
  Controller:它是负责监控Node上运行的Pod是否正常工作,若它发现自己监控的某个Pod故障了,
    它会向API Server发出通告,并要求Master在其它节点上再重新启动一个相同的Pod,
    然后将故障的Pod Kill掉。
  Controller-Manager:它是负责监控所有Controller是否正常工作的,在Kubernetes集群中,有很多
    个功能各异的Controller, 监控Pod健康状态的Controller只是其中之一,Controller-Manager
    它用于监控这些Controller工作状态的,一旦Controller故障,它将重启一个新的Controller来
    代替它工作。
  但是若Controller-Manager故障怎么办? 其实Master在创建时,要求最少要有3个节点,每个节点都会启动一个Controller-Manager,启动一个为主Controller-Manager,其它两个或多个为备用的Controller-Manager,一旦主Controller-Manager故障,则备用的Controller-Manager将代替它继续工作。

helm原理

转载自

Helm:

  helm就相当于Linux的包管理工具yum,但它管理的程序包是一些打包好的清单文件。
  其核心术语:
  Chart:一个helm程序包,它里面可理解为,包含了一下定义Pod的清单文件,这些清单包含Service,Deployment,DaemonSet,ReplicaSet,StatefulSet,HPA等配置信息,当然这些东西不一定都有,会根据应用不同,其清单内容也会有所区别,Template是模板文件,因为配置清单要能适用于各种场景,已经能够根据用户使用场景,做一些自定义配置,比如:Nginx配置清单中要配置HTTPS,那就需要配置证书,但证书不可能提前打包到Chart中,这就需要一些机制,能通过传递变量的方式来适应这些自定义需求,而template就是这样的目的而存在的,值列表就是为Template提供传递变量的文件。

部署Helm:
#下载helm 二进制文件
    wget -c https://get.helm.sh/helm-v2.14.2-linux-amd64.tar.gz
    
    #下载完成后,解压后,里面会有helm二进制可执行文件,只需要将helm 放到 PATH 路径下。

#参考示例:
    https://github.com/helm/helm/blob/master/docs/rbac.md
#创建一个能在集群级别管理Pod资源的tiller
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: tiller
      namespace: kube-system
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: tiller
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
      - kind: ServiceAccount
        name: tiller
        namespace: kube-system
        
#在进行tiller server安装时,默认是从google镜像仓库中下载的,但国内很多下载不下来,这里可先从阿里云的谷歌镜像仓库下载下来,#导入自己的harbor中,或直接使用阿里的谷歌镜像仓库也可
#下面是我提前下载了tiller的镜像,推到我的harbor了
        docker  pull  registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.2       #这是从谷歌镜像仓库下载.
        
        helm  init  --tiller-image  harbor.zcf.com/k8s/tiller:v2.14.2  --service-account tiller  --history-max  200

#若后期需要升级tiller镜像,可直接使用下面命令
        $ export TILLER_TAG=v2.0.0-beta.1        # Or whatever version you want
        $ kubectl --namespace=kube-system set image deployments/tiller-deploy tiller=gcr.io/kubernetes-helm/tiller:$TILLER_TAG

#初始化完成后,查看版本
    # helm version
        Client: &version.Version{SemVer:"v2.14.2", GitCommit:"a8b13cc5ab6a7dbef0a58f5061bcc7c0c61598e7", GitTreeState:"clean"}
        Server: &version.Version{SemVer:"v2.14.2", GitCommit:"a8b13cc5ab6a7dbef0a58f5061bcc7c0c61598e7", GitTreeState:"clean"}

#做helm仓库更新
   #  helm  repo  update

#测试安装memcached
   # helm  install  stable/memcached

#查看安装的Chart  # helm list         NAME        			REVISION   UPDATED             					STATUS    	CHART       APP VERSION	  NAMESPACE         plucking-buffalo	1           	Tue Jul 30 15:55:04 2019  DEPLOYED   memcached-2.9.0	1.5.12         	default 
#删除Chart
  # helm  delete  --purge  plucking-buffalo

quick start

k8s 基础转载自https://www.cnblogs.com/wn1m/p/11285430.html

helm原理转载自

原文:https://www.cnblogs.com/tangdatou/p/15259313.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐