
云原生
文章平均质量分 64
云原生相关技术学习
fzzjoy
Code Change World
展开
-
k8s operator从0到1实践
新建名为easyservice-sample的自定义资源实例,创建副本数量和对应的nodeport端口。对象结构(api)、控制器(controller)修改完毕后,需要更新crd的定义。使用脚手架工具,能生成项目模板,开发人员只需要关注核心逻辑和方法即可。当CR新建出来后,controller就会收到相应的事件变更。推荐使用docker-desktop,本地单机集群。1、制作推送controller镜像。2、把controller部署到集群。登录到在集群master上操作。1、将CRD安装到集群。原创 2024-01-14 22:13:53 · 829 阅读 · 0 评论 -
curl memo
【代码】curl memo。原创 2022-12-24 11:58:34 · 168 阅读 · 0 评论 -
docker-desktop windows支持挂载hostpath
docker-desktop在windows系统中支持容器方案主要采用两种方式。原创 2022-10-31 23:16:01 · 1755 阅读 · 0 评论 -
rabbitmq k8s部署
k8s 部署rabbitmq原创 2022-09-28 23:23:45 · 849 阅读 · 0 评论 -
Job和CronJob
Job 会创建一个或者多个 Pods,并将继续重试 Pods 的执行,直到指定数量的 Pods 成功终止。 随着 Pods 成功结束,Job 跟踪记录成功完成的 Pods 个数。 当数量达到指定的成功个数阈值时,任务(即 Job)结束。并行jobCronJob定时任务:CronJob 创建基于时间可重复调度的 Jobs。简称cj下面的 CronJob 示例清单会在每分钟打印出当前时间和问候消息:...原创 2022-07-06 21:55:30 · 258 阅读 · 0 评论 -
StatefulSets
StatefulSets(sts)StatefulSet 是用来管理有状态应用的工作负载 API 对象。StatefulSet 用来管理某 Pod 集合的部署和扩缩, 并为这些 Pod 提供持久存储和持久标识符。StatefulSets 对于需要满足以下一个或多个需求的应用程序很有价值:稳定的、唯一的网络标识符 - pod name不会改变。稳定的、持久的存储。有序的、优雅的部署和缩放。有序的、自动的滚动更新 - 可以做部分pod更新,灰度发布。查看本机的storageclass,利用原创 2022-05-22 15:43:51 · 830 阅读 · 0 评论 -
k8s各种port
在编排kubernetes时,Deployment的Pod项有containerPort,Service文件里的port,targetPort, nodePort,这些pod概念有些时候可能会让人感到非常困惑,这里通过示例来简单介绍各种port的含义deploy yamlapiVersion: apps/v1kind: Deploymentmetadata: name: test-deploy labels: app: test-deployspec: replicas:原创 2022-04-25 00:20:23 · 925 阅读 · 0 评论 -
k8s-configmap和secret
ConfigMapConfigMap 并不提供保密或者加密功能。 如果你想存储的数据是机密的,请使用 Secret, 或者使用其他第三方工具来保证你的数据的私密性,而不是用 ConfigMap。如何在容器中监听configMap的变化viper参考ConfigMap...原创 2022-04-24 22:23:08 · 512 阅读 · 0 评论 -
k8s-RBAC与SA
文章目录RBACRole和RoleBindingRoleRoleBinding验证ClusterRole和ClusterRoleBindingClusterRoleClusterRoleBinding验证定义ServiceAccount参考RBAC基于角色的访问控制(Role-Based Access Control, 即”RBAC”)使用”rbac.authorization.k8s.io” API Group实现授权决策,允许管理员通过Kubernetes API动态配置策略。基于RBAC配置U原创 2022-04-24 22:10:47 · 623 阅读 · 0 评论 -
k8s client-go修改node label
package mainimport ( "context" "encoding/json" "fmt" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/tools/clientcmd" "os" "os/user" "strings" "k8s.io/client-go/kubernetes")func main() { // o原创 2022-04-24 21:40:17 · 2091 阅读 · 0 评论 -
sidecar模式
sidecar简单的说,一个pod内有多个容器应用在同时工作,相互协同,完成特定需求。sidecar的思想核心就是:不侵入主容器的前提下,可以进行服务功能扩展。一般都是一些共性的能力,比如说:日志代理/转发,例如 fluentd;Service Mesh,比如 Istio,Linkerd;代理,比如 Docker Ambassador;探活:检查某些组件是不是正常工作;其他辅助性的工作,比如拷贝文件,下载文件等;k8s不会明显区分主容器与sidecar容器,如果主容器与sidecar容原创 2022-04-09 16:46:04 · 1549 阅读 · 0 评论 -
k8s运行mysql服务
k8s mysql原创 2022-03-05 14:02:23 · 2976 阅读 · 0 评论 -
集群内外访问pod的方式
文章目录集群内访问service直接访问集群pod的clusterIP直接访问服务名通过环境变量访问集群外访问servicehostNetworkhostPortNodePortloadbalancerIngress在 Minikube 环境中使用 NGINX Ingress 控制器配置 Ingress参考集群内访问service直接访问集群pod的clusterIPservice的clusterIP即:service的虚拟IP直接访问服务名通过环境变量访问示例:server.yamlki原创 2022-01-31 16:51:55 · 5473 阅读 · 1 评论 -
k8s安装使用metrics-server
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.0/components.yaml如果这时候查看deployment提示出错:$ kubectl describe pod metrics-server-65b979d49c-bm4vz -n kube-system······Events: Type Reason Age .原创 2022-01-30 21:43:37 · 3046 阅读 · 0 评论 -
在kubernetes部署发布go应用程序
dockerfile文件放在golang程序根目录下:FROM golang:1.17.3WORKDIR /appCOPY . /appRUN go build -o go-web .ENTRYPOINT ["/app/go-web"]执行以下指令:docker build -t test/go-app:v1.0.0 .docker push test/go-app:v1.0.0 // push到镜像中心...原创 2022-01-30 11:06:36 · 992 阅读 · 0 评论 -
k8s挂载存储
nfs pvc原创 2021-12-18 23:53:51 · 1122 阅读 · 0 评论 -
k8s基操
文章目录环境配置Linux安装Docker安装kubectl安装minikubemacOS常用操作环境配置Linux安装DockerDocker学习笔记安装kubectlcurl -LO “https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl”sudo install -o root -g root -m 0755 kubectl /usr原创 2021-12-01 23:51:51 · 782 阅读 · 0 评论 -
docker数据持久化
bind mount: 可以存储在宿主机器任何一个地方,但是会依赖宿主机器的目录结构,不能通过docker CLI 去直接管理,并且非docker进程和docker进程都可以修改该路径下的文件volume: 在宿主的文件系统上的docker工作路径下创建一个文件夹(/var/lib/docker/volumes)来存储数据,其他非docker进程是不能修改该路径下的文件,完全由docker来管理tmpfs : 无论是在Docker主机上还是在容器内,tmpfs挂载都不会持久保存在磁盘上,它会将信息存储在原创 2021-10-05 14:32:46 · 275 阅读 · 0 评论 -
dockerfile-新增用户并赋予sudo权限以及指定密码
Dockerfile:# 基础镜像FROM ubuntu:16.04# build参数ARG user=test# 元数据LABEL maintainer="fzzjoy" email="fzz_joy@163.com"# 安装依赖RUN apt-get update && apt-get install sudo # 添加用户:赋予sudo权限,指定密码RUN useradd --create-home --no-log-init --shell /bin/ba原创 2021-10-02 18:04:53 · 15057 阅读 · 0 评论 -
docker搭建QtCreator开发环境
当我们在开发一个新项目或者有新员工入职时,往往会为折腾开发环境而折腾好久。但docker则可以为我们提供这样一个标准化的镜像方案,大家只需拉取开发镜像即可,而无需去从头配置开发环境。本文以配置ubuntu16.04的Qt开发环境为例加以说明,如何制作一个开发镜像。原创 2021-10-02 19:47:43 · 10632 阅读 · 2 评论 -
docker“单进程“模型
容器和虚拟机的区别传统虚拟机运行应用程序所需的一切都包含在虚拟机里–虚拟化的硬件,操作系统以及任何所需的二进制文件和库。因此,虚拟机具有自己独立的基础架构。优点虚拟机彼此独立隔离;虚拟机与宿主机操作系统隔离,是进行实验和开发应用程序的安全场所。减少在服务器设备上的支出;缺点占用主机的大量系统资源。在虚拟机上运行程序需要启动Guest OS以及相关所有硬件的虚拟副本。应用迁移成本高,与操作系统绑定。容器容器是一个不依赖于操作系统,运行应用程序的环境。它通过Linux的c原创 2021-09-23 23:20:10 · 667 阅读 · 0 评论 -
Docker学习笔记
基本概念镜像(Image):类似系统镜像容器(Container):可以简单理解为镜像提供了运行环境,类似系统硬件环境。容器是基于镜像启动的,并且每个容器都是相互隔离的仓库(Repository):用于存放镜像,类似git仓库注意:镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等Docker安装卸载旧版本$ sudo apt-get remove d原创 2021-01-19 22:49:34 · 201 阅读 · 0 评论