pod

[raw] k8s笔记

可紊 提交于 2020-02-28 03:53:55
3.k8s 3.1 安装VirtualBox 没有硬件虚拟化,则需要安装 sudo yum install kernel-devel kernel-headers make patch gcc sudo wget https://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo -P /etc/yum.repos.d sudo yum install VirtualBox-5.2 # Ext wget https://download.virtualbox.org/virtualbox/5.2.20/Oracle_VM_VirtualBox_Extension_Pack-5.2.20.vbox-extpack sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.2.20.vbox-extpack # 验证 systemctl status vboxdrv # url https://www.linuxidc.com/Linux/2018-11/155220.htm 3.2 安装minikube 1.install curl -Lo minikube http://kubernetes.oss-cn-hangzhou

kubernetes常用命令整理

人走茶凉 提交于 2020-02-28 03:44:35
一、维护类: master节点: [root@k8s-master01 ~]# for I in etcd kube-apiserver kube-controller-manager kube-scheduler; do systemctl restart $I systemctl enable $I done [root@k8s-master01 ~]# service flanneld start node节点: [root@k8s-master01 ~]#for I in kube-proxy kubelet docker do systemctl restart $I systemctl enable $I done [root@k8s-master01 ~]# service flanneld start 获取token: kubectl get secret -n kube-system kubectl describe secret admin-token-45rzl -n kube-system 或者 kubectl get secret $(kubectl get secret -n kube-system|grep admin-token|awk '{print $1}') -n kube-system -o jsonpath={.data.token}

Tungsten Fabric与K8s集成指南丨创建虚拟网络

你说的曾经没有我的故事 提交于 2020-02-27 23:28:01
作者:吴明秘 Hi!欢迎来到Tungsten Fabric与Kubernetes集成指南系列,本文介绍通常创建虚拟网络的五个步骤。 Tungsten Fabric与K8s集成指南系列文章,由TF中文社区为您呈现,旨在帮助大家了解Tungsten Fabric与K8s集成的基础知识。大家在相关部署中有什么经验,或者遇到的问题,欢迎与我们联系。 在做好架构部署,并确认Tungsten Fabric和Kubernetes(K8s)集群的初始状态没有问题后,就可以开始尝试创建虚拟网络了。 第1步:新建命名空间 在K8s中,大部分的资源都隶属于一个命名空间,所以需要首先新建命名空间,然后再创建对应的pod,service,以及虚拟网络。在此新建两个命名空间,分别为 test-ns1 和 test-ns2,登录K8s的master节点执行以下命令: 创建成功后,在Tungsten Fabric管理界面可以看到对应的project被创建出来,k8s-test-ns1与k8s-test-ns2。 第2步:新建IPAM 你需要为你的项目创建一个IP地址管理(IPAM),基于此来创建一个虚拟网络。 在Tungsten Fabric管理界面选择“Configure > Networking > IP Address Management”,并选择project - k8s-test-ns1,然后单击

图解kubernetes调度器SchedulerCache核心源码实现

。_饼干妹妹 提交于 2020-02-27 21:58:38
SchedulerCache是kubernetes scheduler中负责本地数据缓存的核心数据结构, 其实现了Cache接口,负责存储从apiserver获取的数据,提供给Scheduler调度器获取Node的信息,然后由调度算法的决策pod的最终node节点,其中Snapshot和节点打散算法非常值得借鉴 设计目标 数据感知 SchedulerCache的数据从apiserver通过网络感知,其数据的同步一致性主要是通过kubernetes中的Reflector组件来负责保证,SchedulerCache本身就是一个单纯数据的存储 Snapshot机制 当scheduler获取一个待调度的pod,则需要从Cache中获取当前集群中的快照数据(当前此时集群中node的统计信息), 用于后续调度流程中使用 节点打散 节点打散主要是指的调度器调度的时候,在满足调度需求的情况下,为了保证pod均匀分配到所有的node节点上,通常会按照逐个zone逐个node节点进行分配,从而让pod节点打散在整个集群中 过期删除 Scheduler进行完成调度流程的决策之后,为pod选择了一个node节点,此时还未进行后续的Bind操作,但实际上资源已经分配给该pod, 此时会先更新到本地缓存(),然后再等待apiserver进行数据的广播并且最终被kubelet来进行实际的调度

Kubernetes服务篇

被刻印的时光 ゝ 提交于 2020-02-27 03:44:13
前言 上文介绍了 Kubernetes副本机制 ,正是因为副本机制你的部署能自动保待运行,并且保持健康,无须任何手动干预;本文继续介绍kubernetes的另一个强大的功能 服务 ,在客户端和pod之间提供一个服务层,提供了单一的接入点,更加方便客户端使用pod。 服务 Kubernetes服务是一种为一组功能相同的pod提供单一不变的接入点的资源;当服务存在时,它的IP地址和端口不会改变,客户端通过IP地址和端口号建立连接,这些连接会被路由到提供该服务的任意一个pod上; 1.创建服务 服务的连接对所有的后端pod是负载均衡的,至于哪些pod被属于哪个服务,通过在定义服务的时候设置标签选择器; [d:\k8s]$ kubectl create -f kubia-rc.yaml replicationcontroller/kubia created [d:\k8s]$ kubectl get pod NAME READY STATUS RESTARTS AGE kubia -6d xn7 0 / 1 ContainerCreating 0 4s kubia-fhxht 0 / 1 ContainerCreating 0 4s kubia-fpvc7 0 / 1 ContainerCreating 0 4s 使用之前的yaml文件创建pod,模版中设置的标签为 app: kubia

Ingress实现虚拟主机

試著忘記壹切 提交于 2020-02-26 17:26:41
Ingress实现虚拟主机 虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的物理服务器划分成多个“虚拟”服务器。虚拟主机技术极大的促进了网络技术的应用和普及。同时虚拟主机的租用服务也成了网络时代的一种新型经济形式 1、首先确定要运行Ingress-nginx-controller服务 [ root@master ~ ] # kubectl get pod -n ingress-nginx NAME READY STATUS RESTARTS AGE nginx-ingress-controller-5954d475b6-ktpf9 1/1 Running 1 43h 2、将Ingress-nginx-controller暴露为一个service资源对象 [ root@master ~ ] # kubectl get svc -n ingress-nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT ( S ) AGE ingress-nginx NodePort 10.100.97.246 < none > 80:32007/TCP,443:30741/TCP 43h 3、创建一个Deployment资源和一个Service资源,并相互关联 [ root@master ~ ] # vim deploy1.yaml apiVersion :

从零开始入门 K8s | Kubernetes API 编程利器:Operator 和 Operat

大城市里の小女人 提交于 2020-02-26 15:42:41
作者 | 夙兴 阿里巴巴高级工程师 本文整理自《CNCF x Alibaba 云原生技术公开课》第 24 讲,点击“阅读原文”直达课程页面。 关注“阿里巴巴云原生”公众号,回复关键词 “入门” ,即可下载从零入门 K8s 系列文章 PPT。 导读 :本文将从实践出发,结合案例来说明,如何借助 Operator 开发框架来扩展 Kubernetes API。内容主要分为三个部分:首先会简单介绍一下 Operator 相关的知识;然后会介绍 Operator 开发框架并结合案例来详细说明整个开发过程;最后会结合案例的工作流程来重新说明 Operator 是如何工作的。 一、operator 概述 基本概念 首先介绍一下本文内容所涉及到的基本概念。 CRD (Custom Resource Definition) : 允许用户自定义 Kubernetes 资源,是一个类型; CR (Custom Resourse) : CRD 的一个具体实例; webhook : 它本质上是一种 HTTP 回调,会注册到 apiserver 上。在 apiserver 特定事件发生时,会查询已注册的 webhook,并把相应的消息转发过去。 按照处理类型的不同,一般可以将其分为两类:一类可能会修改传入对象,称为 mutating webhook;一类则会只读传入对象,称为 validating

K8s学习记录-基础概念

自古美人都是妖i 提交于 2020-02-26 13:28:07
Server组件(主节点) Scheduler 负责介绍任务,选择合适的节点进行分配任务 APISERVER 所有服务访问统一入口 CrontrollerManage 资源管理 ETCD 键值对数据库 储存K8S集群所有重要信息(持久化) Node组件(节点) kubelet 直接跟容器引擎交互实现容器的生命周期管理 Kube-proxy 负责写入规则至 IPTABLES、IPVS 实现服务映射访问的 pod k8s中最小资源单位。相当于k8s管理的一台小型的计算机, pod 中容器使用共同的网络协议栈和存储 其他介绍 ReplicationController 用来确保容器应用的副本数始终保持在用户定义的副本数,即如果有容器异常退出,会自动创建新的 Pod 来替代;而如果异常多出来的容器也会自动回收。 在新版本的 Kubernetes 中建议使用 ReplicaSet 来取代 ReplicationControlle ReplicaSet 跟 ReplicationController 没有本质的不同,只是名字不一样,并且 ReplicaSet 支持集合式的 selector 虽然 ReplicaSet 可以独立使用,但一般还是建议使用 Deployment 来自动管理 ReplicaSet ,这样就无需担心跟其他机制的不兼容问题(比如 ReplicaSet 不支持

IOS中CocoaPods安装与使用

霸气de小男生 提交于 2020-02-26 08:10:08
网上有很多文章关于 cocoaPods配置文章,其实cocoaPods配置并不难,只是比较繁琐而已,我也是照着网站文章一步步搭建配置成功。写这篇文章的目的就是像做笔记一样,便于以后用的时候好回忆。废话不多说,直接开始。 CocoaPods在Ios中强大的功能,我就不再这里一一解说(不清楚的盆友,可以搜索一下) 一:安装前提 1:必须安装Xcode 2: 必须安装 xcode 中 command Line 二:开始安装cocoaPods (我假设大家都安装第一步) 1: 下载 /安装 cocoapods ①:打开终端 输入命令 ②:在终端上直接输入 gem install cocoapods 三:使用CocoaPods 1:你先随便在XCode中建一个项目。 2:打开终端,使用cd命令定位到需要使用CocoaPods的项目根路径。 3: 现在需要在项目中建立Podfile文件 (这个是 CocoaPods 固定规则) 步骤①:使用创建Podfile的命令 touch Podfile 步骤②: 然后编辑Podfile文件,命令 open -e Podfile 步骤③: 在弹出的编辑界面中输入(你要下载的内容) platform :ios, '7.0' pod 'Reachability', '~> 3.2' pod 'SDWebImage', '~> 3.7.3' pod

OC与Swift创建pod

﹥>﹥吖頭↗ 提交于 2020-02-26 06:58:49
Cocoa pods 是iOS最常用的类库管理工具 OC的使用 删除源 sudo gem sources -r https://rubygems.org/ 添加源(使用淘宝的镜像,记住要用https) sudo gem sources -a https://ruby.taobao.org/ 查看是否使用的是淘宝镜像 $ gem sources -l # 安装 $ sudo gem install cocoapods # 安装成功之后,查看是否是最后版本(目前最新版本是1.0.1) $ pod --version # 接下来进行安装,执行: $ pod setup 使用 # 搜索,先搜索一下,你需要用到的框架 $ pod search AFNetworking # 生成方式 只创建Podfile(记住要到工程目录下,没有后缀) $ touch Podfile # 安装 $ pod install # 升级 (推荐用update,其中update就包含了install) $ pod update # 如果update 或 install 卡住了,可以用下面两个命令替代(前提是你已经把第三方库下载下来了) $ pod install --verbose --no-repo-update $ pod update --verbose --no-repo-update 建议使用这两种方法 #