环境: golang 1.15 依赖包采用go module 实例:现在往 Kubernetes 添加一个名叫 Network 的 API 资源类型.它的作用是,一旦用户创建一个 Network 对象,那么 Kubernetes 就应该使用这个对象定义的网络参数,调用真实的网络插件,为用户创建一个真正的"网络".这样,将来用户创建的 Pod,就可以声明使用这个"网络"了. 结构如下: MacBook-Pro kubernetes % tree k8s-control…
Jerry之前的文章如何在Kubernetes里创建一个Nginx应用,已经使用kubectl命令行创建了Pod,但是在kubernetes中,Pod的IP地址会随着Pod的重启而变化,因此用Pod的IP地址来访问我们部署的nginx应用不太合适. Kubernetes里推荐的方式是用Service来消费nginx服务. Service为一组Pod提供一个统一的入口,并为它们提供负载均衡 和服务发现支持. 使用如下命令行基于pod创建一个service: kubectl expose deplo…
创建一个initdb.sql文件,输入如下内容: -- This is a postgres initialization script for the postgres container. -- Will be executed during container initialization ($> psql postgres -f initdb.sql) CREATE ROLE adsuser WITH LOGIN PASSWORD 'initial' INHERIT CREATEDB;…
使用命令行kubectl run --image=nginx nginx-app --port=80 创建一个名为nginx-app的应用 结果: deployment.apps/nginx-app created 使用命令行kubectl get pods查看创建结果,状态已经为running: 使用命令行kubectl describe pods查看pod明细: 把pod id记下来: nginx-app-f75d46bd9-q6c76 使用该pod id可以执行一些命令: kubectl…
部门产品线本身是做DEVOPS平台,最近部署架构也在往K8S上靠了,不得不学一下K8S.自己搭建了K8S集群与harbor仓库来学习. 1.kubernetes之常用核心资源对象 1.1.K8s服务部署 Kubernetes: 用来编排(管理)容器的,但是kubernetes不直接部署容器,而是通过部署一个pod服务来间接管理容器,pod内部封装的是一个容器. 1.2.POD POD是kubernetes集群的最小任务调度单元. Kubernetes里的所有资源对象都可以采用YAML或者JSON…
Kubernetes的核心技术概念和API对象 API对象是K8s集群中的管理操作单元.K8s集群系统每支持一项新功能,引入一项新技术,一定会新引入对应的API对象,支持对该功能的管理操作.例如副本集Replica Set对应的API对象是RS. 每个API对象都有3大类属性:元数据metadata.规范spec和状态status.元数据是用来标识API对象的,每个对象都至少有3个元数据:namespace,name和uid:除此以外还有各种各样的标签labels用来标识和匹配不同的对象,例如用…
什么是声明式API呢? 答案是,kubectl apply命令. 举个栗子 在本地编写一个Deployment的YAML文件: apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: template: metadata: labels: app: nginx spec: containers: - name: n…
Chrome出了个小bug:论如何在Chrome下劫持原生只读对象 概述 众所周知,虽然JavaScript是个很灵活的语言,浏览器里很多原生的方法都可以随意覆盖或者重写,比如alert.但是为了保证网页的安全性和网页制作者的一定控制权,有些浏览器对象是无法更改的,比如"window.location"对象,或者对它们的更改是无效的,比如"window.navigator"对象.然而,最近我发现Chrome出现了一个小"bug",在Chrome…
在SharePoint 2010 母版页里添加自定义用户控件(译) 使用自定义用户控件的好处: 1.容易部署:2.易于控制显示或隐藏. (在使用的过程中)可能要面对的问题是:如何在用户控件里使用Sharepoint 服务器对象模型?可以通过下面代码来实现: using (SPSite site = new SPSite(Request.Url.ToString()))             {                 using (SPWeb web = site.OpenWeb())…
任何版本控制系统的一个最有的用特性就是“撤销 (undo)”你的错误操作的能力.在 Git 里,“撤销” 蕴含了不少略有差别的功能. 当你进行一次新的提交的时候,Git 会保存你代码库在那个特定时间点的快照:之后,你可以利用 Git 返回到你的项目的一个早期版本. 在本篇博文里,我会讲解某些你需要“撤销”已做出的修改的常见场景,以及利用 Git 进行这些操作的最佳方法. 撤销一个“已公开”的改变 场景: 你已经执行了 git push, 把你的修改发送到了 GitHub,现在你意识到这些 com…