分类「Kubernetes」的所有文章

jenkins k8s ci/cd

jenkins k8s ci/cd

先把结果贴出来 1 点击开始构建 (可以输入 gitlab 的 tag 号,默认则 master 分支最新代码) 2 构建后的结果 实现步骤: 依赖: 1 jenkins安装 Git Parameter 插件 2 jenkins服务器上安装 kubectl 3 docker login 认证(看需求) 大致流程如下: 1 构建项目 (golang, java .....) 2 把构建后的项目打成docker镜像 3 docker镜像上传...

kubernetes ingress-nginx 金丝雀发布

kubernetes ingress-nginx 金丝雀发布

流程如下: 1、v1.0 版本正在提供流量 2、部署 v2.0 版本 3、创建一个新的 “金丝雀” ingress,启用流量分割 4、观察 v2.0 版本是否稳定并且不会引发意外错误 5、删除金丝雀入口 6、正式发布 v2.0 版本 1、部署 v1.0 # cat app-v1.yaml apiVersion: v1 kind: Service metadata: name: my-app-v1 labels: app: my-app spec: ports...

kubernetes ingress-nginx 安装和简单使用

kubernetes ingress-nginx 安装和简单使用

1、安装 使用hostNetwork模式,yaml如下: apiVersion: v1 kind: Namespace metadata: name: ingress-nginx labels: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx --- kind: ConfigMap apiVersion: v1 metadata: name: nginx-configuration namespace: ingress-nginx labels: a...

kubernetes Container Lifecycle Hooks

kubernetes Container Lifecycle Hooks

容器中有两个钩子: 1、PostStart 这个钩子在容器创建后立即执行。 但是,并不能保证钩子将在容器ENTRYPOINT之前运行。 没有参数传递给处理程序。 2、PreStop 这个钩子在容器终止之前立即被调用。 它是阻塞的,意味着它是同步的, 所以它必须在删除容器的调用发出之前完成。 钩子处理程序的实现 容器可以通过实现和注册该钩子的处理程序来访...

kubernetes RBAC

kubernetes RBAC

1、Role和ClusterRole 1)Role Role 只能用于授予单个命名空间内的资源的访问权限 demo: pod只读权限(授予“default”命名空间中的权限) apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: default name: pod-reader rules: - apiGroups: [""] # "" indicates the core API group resou...

Kubernetes Taint 和 toleration

Kubernetes Taint 和 toleration

污点和容忍 Node 亲和性,根据之前的描述,是 pod 的一个属性,将其 吸引 到一个 node 集上(以倾向性或硬性要求的形式)。Taint 则刚好相反 – 它们允许一个 node 排斥 一些 pod。 Taint 和 toleration 一起工作,以确保 pod 不会被调度到不适当的 node 上。如果一个或多个 taint 应用于一个 node,这表示该节点不应该接受任何不能容忍 taint...

Kubernetes PodAffinity

Kubernetes PodAffinity

Pod亲和与互斥调度策略 Pod 间的亲和性和反亲和性允许您 根据已经在 node 上运行的 pod 的标签 来限制 pod 调度在哪个 node 上,而不是基于 node 上的标签。这些规则的形式是 “如果 X 已经运行一个或多个符合规则 Y 的 pod,那么这个 pod 应该(如果是反亲和性,则是不应该)运行在 X 上”。这里 Y 指具有关联命名空间列表的 LabelSelector(...

Kubernetes NodeAffinity

Kubernetes NodeAffinity

Node亲和性调度 apiVersion: v1 kind: Pod metadata: name: with-node-affinity spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: # 要求只运行在amd64的节点上(硬限制) nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch oper...

Kubernetes NodeSelector

Kubernetes NodeSelector

将pod调度到指定节点 # 通过kubectl label 命令给目标Node上打上标签 [root@k8s-master yaml]# kubectl label nodes k8s-node01 zone=myapp node/k8s-node01 labeled # yaml 文件内容如下 [root@k8s-master yaml]# cat myapp_deployment.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: myapp-test spec: replic...

Kubernetes Downward API

Kubernetes Downward API

在容器内获取Pod信息 1)环境变量方式 demo 1:将Pod信息注入到容器内部 # Pod的yaml内容如下 [root@kube-master zh-go]# cat DownwardAPI-pod-1.yaml apiVersion: v1 kind: Pod metadata: name: downward-1 spec: containers: - name: c-downward-1 image: nginx command: [ "sh", "-c"] arg...