k8s

kubernetes 集群搭建

 ̄綄美尐妖づ 提交于 2020-03-26 19:04:28
内容来源: https://study.163.com/course/courseMain.htm?courseId=1209568805 安装所需资源   软路由: https://pan.baidu.com/s/1On6h4IReUdzn6kOXImQHJg 提取码:vkcu   kubernetes资源: https://pan.baidu.com/s/1r0zQxn58c4XxI8s0Qv8w7g 提取码:l4xf 安装教程汪洋老师讲的都比较详细,安装文档上面资源文档中也有,此处就不写了。 安装虚拟机的时候 CPU 最好设置 大于等于 4核 内存如果不够设置小点应该也是没影响的,我这边设置的是2G 遇到的问题 由于无法 kexue上网(翻墙),在最后一步部署网络的时候会无法下载 flannel-v0.12.0-amd64 docker镜像 会出现以下问题: [root@k8s-master01 flannel]# kubectl create -f kube-flannel.yml podsecuritypolicy.policy/psp.flannel.unprivileged created clusterrole.rbac.authorization.k8s.io/flannel created clusterrolebinding.rbac

阿里巴巴如何改善开发人员在 K8s 上的体验?

瘦欲@ 提交于 2020-03-26 11:36:31
3 月,跳不动了?>>> 作者:邓洪超 阿里巴巴应用交付专家 前言 通过 K8s,用户能够自定义基础设施,可以平行的替换或改造平台的已有功能,而非只能局限在平台提供的能力之上构建。但正是这样的“白盒化”体验,正在为越来越多的研发和运维带来“太复杂”的困扰。 从 Kubernetes 到“以应用为中心”的美好未来之间,全世界的 PaaS 工程师其实都在期待一项全新的技术能够弥补这之间的鸿沟。阿里云原生应用平台团队的做法是,通过为应用“建模”的方式来解决这个问题,这也正是 Open Application Model (OAM) 开源项目得以创建的重要目的。 阿里巴巴的容器化之旅 阿里巴巴的容器化之旅始于 2013 年。在 Docker 诞生之前,阿里巴巴基于 lxc 的容器引擎研发了容器技术 T4,用于在裸机上部署和管理应用程序。 2017 年, 阿里巴巴内部孵化了类似于 K8s 的容器编排引擎 Sigma 作为资源统一层,用于管理内部机器池,平均利用率达到 40%。 2018 年,Sigma 重新设计并迁移成兼容 K8s API,阿里巴巴重新编写了自定义控制器和调度算法,并向暴露声明式 API 给用户试用。 2019 年底,阿里巴巴中的大多数应用都在 K8s 上运行,并且在 K8s 之上构建了数十个原生框架,构筑 K8s 生态系统。而 2019 年的 双11

k8s

徘徊边缘 提交于 2020-03-26 11:11:20
一、环境准备 二、所有节点安装docker、kubelet、kubeadm等 三、 八、kubelet(pod管家) 在kubernetes集群中,每个Node节点都会启动kubelet进程,用来处理Master节点下发到本节点的任务,管理Pod和其中的容器。kubelet会在API Server上注册节点信息,定期向Master汇报节点资源使用情况,并通过cAdvisor监控容器和节点资源。可以把kubelet理解成【Server-Agent】架构中的agent,是Node上的pod管家。更多kubelet配置参数信息可参考kubelet –help 当k8s节点出现 NotReady,可用如下命令查看报错信息 # journalctl -f -u kubelet 九、小技巧 1、flannel pod 删除不掉 强制删除也不行,经排查,node2节点有问题(docker没有开机自启,重启docker)。节点正常后再强制删除 使用命令获取pod的名字 kubectl get po -n NAMESPACE |grep Terminating 使用kubectl中的强制删除命令 kubectl delete pod podName -n NAMESPACE --force --grace-period=0 强大的k8s离线管理 https://docs.kubeoperator

K8S volume

£可爱£侵袭症+ 提交于 2020-03-25 21:06:36
容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将去失--容器以干净的状态(镜像最初的状态)重新启动。其次,在 Pod 中同时运行多个容器时,这些容器之间通常需要共享文件。Kubernetes中的 volume 抽象就很好的解决了这些问题。 背景 Kubernetes 中的卷有明确的寿命 -- 与封装它的 Pod 相同。所以,卷的生命比 Pod 中的所有容器都长,当这个容器重启时数据仍然得以保存。当然,当 Pod 不再存在时,卷也将不复存在。也许更重要的是,Kubernetes 支持多种类型的卷,Pod 可以同时使用任意数量的卷 卷的类型 Kubernetes支持以下类型的卷: awsElasticBlockStore, azureDisk, azureFile, cephfs, csi, downwardAPI, emptyDir, fc, flocker, gcePersistentDisk, gitRepo, glusterfs, hostPath, iscsi, nfs, persistentVolumeClaim, projected, portworxVolume, quobyte, rbd, scaleIO, secret, storageos, vsphereVolume

安装minikube试用k8s

谁都会走 提交于 2020-03-25 02:36:03
一、安装minikube(2020-03-25成功) 官方安装地址: https://minikube.sigs.k8s.io/docs/start/linux/ 阿里云镜像地址,仅支持v1.7.3:https://github.com/AliyunContainerService/minikube Docker Hub 的中国官方镜像加速 https://registry.docker-cn.com 1、下载并移动到本机安装 查阅 https://github.com/kubernetes/minikube/releases ,minikube最新版本为 2020-03-13推出的 Version 1.8.2 curl -Lo minikube https://github.com/kubernetes/minikube/releases/download/v1.8.2/minikube-linux-amd64 tar zcvf minikube.tar.gz minikube tar zxvf minikube.tar.gz chmod +x minikube && mv minikube /usr/local/bin/ 官方提供的方法curl -LO https://storage.googleapis.com/minikube/releases/latest

k8s创建指定用户只对指定namesapce下的资源有操作权限

强颜欢笑 提交于 2020-03-24 23:53:27
目标:devuser用户只对namespace是dev下的资源有操作权限 一、基础配置设置 1、首先useradd创建一个devuser用户,并修改密码: 使用devuser执行kubectl get pod命令不会成功,因为devuser现在对任何一个namespace下的资源都没有权限 2、创建一个dev的namespace 二、k8s config 文件生成 1、创建用来生成密钥的json文件 cat /k8s/cert/devuser.json { "CN": "devuser", "hosts": [], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "ST": "ShenZhen", "L": "ShenZhen", "O": "k8s", "OU": "System" } ] } 2、获取生成密钥的命令文件: wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 指定密钥文件,生成密钥(此步命令尽量在/etc

kubeadm部署kubernetes v1.17.4 单master节点

不羁岁月 提交于 2020-03-24 17:46:35
环境说明: #操作系统:centos7 #docker版本:19.03.8 #kubernetes版本:v1.17.4 #K8S master 节点IP:192.168.3.62 #K8S worker节点IP:192.168.2.186 #网络插件:flannel #kube-proxy网络转发: ipvs #kubernetes源:使用阿里云源 #service-cidr:10.96.0.0/16 #pod-network-cidr:10.244.0.0/16 部署准备: 操作在所有节点进行 修改内核参数: 关闭swap vim /etc/sysctl.conf vm.swappiness=0 net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-arptables=1 sysctl -p 临时生效 swapoff -a && sysctl -w vm.swappiness=0 修改 fstab 不在挂载 swap vi /etc/fstab /dev/mapper/centos-swap swap swap defaults 0 0 安装docker yum-config

我的 K8S 架构搭建 之旅

不问归期 提交于 2020-03-24 12:24:31
一、总体框架图: Master组件: nkube-apiserver Kubernetes API,集群的统一入口,各组件协调者,以HTTP API提供接口服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提交给Etcd存储。 nkube-controller-manager 处理集群中常规后台任务,一个资源对应一个控制器,而ControllerManager就是负责管理这些控制器的。 nkube-scheduler 根据调度算法为新创建的Pod选择一个Node节点。 Node组件: nkubelet kubelet是Master在Node节点上的Agent,管理本机运行容器的生命周期,比如创建容器、Pod挂载数据卷、 下载secret、获取容器和节点状态等工作。kubelet将每个Pod转换成一组容器。 nkube-proxy 在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。 ndocker或rocket/rkt 运行容器。 第三方服务: netcd 分布式键值存储系统。用于保持集群状态,比如Pod、Service等对象信息。 二、部署的步骤: 1、环境规划 2、安装Docker 3、自签TLS证书 4、部署Etcd集群 5、部署Flannel网络 6、创建Node节点kubeconfig文件 7、获取K8S二进制包 8

四,k8s集群资源清单定义入门

旧时模样 提交于 2020-03-24 06:04:31
目录 资源对象 创建资源的方法 清单帮助命令 创建测试清单 资源的三种创建方式 资源对象 workload:Pod, ReplicaSet, Deployment, StatefulSet, DaemonSet, Job, Cronjob 服务发现及均衡:Service, Ingress 配置与存储:Volume,CSI,ConfigMap,Secret,DownwardAPI 集群级资源:Namespace,Node,Role,ClusterRole,RoleBinding,ClusterRoleBinding 元数据型资源:HPA,PodTemplate,LimitRange 创建资源的方法 apiserver:仅接受JSON格式的资源定义; 使用yaml格式提供配置清单,apiserver可自动将其转为JSON格式,而后再进行执行; 大部分资源的配置清单: apiVersion: group/version $ kubectl api-versions kind 资源类别(pod,service,deployment等) metadata: 元数据 name 同一个namespace下name必须是唯一的 namespace 命名空间 labels 标签,每一种资源都可以有标签 annotations 资源注解 3.spec: 用户期望的目标状态,disired state

kubernetes部署2.0版本UI页面,以及容器资源使用监控(2)

纵饮孤独 提交于 2020-03-23 23:48:44
大家可能都知道k8s默认有个ui界面,但是呢,一般都使用的是1版本的,今天给大家部署的是2版本页面 完整部署文件 Github 地址: https://github.com/my-dlq/blog-example/tree/master/kubernetes/kubernetes-dashboard2.0.0-deploy 接下来开始部署 部署一共分5个步骤: 1、创建RBAC 2、创建configmap和secret 3、创建dashboard 4、创建metrics-scraper 5、创建访问的serviceaccount 我吧文件直接都配好了放到了百度网盘,你们可以直接下载解压使用 链接: https://pan.baidu.com/s/1wdp-zJE6FqpuJdGYgyESmg 提取码:stzw 完成之后就可以通过web页面访问了 这里使用的是kubeadmin部署的,如果是二进制,需要修改api-server的参数不然无法支持metrics-server服务的 1、创建 Dashboard RBAC 部署文件 cat > k8s-dashboard-rbac.yaml <<EOF apiVersion: v1 kind: ServiceAccount metadata: labels: k8s-app: kubernetes-dashboard name: