展开

关键词

Kubernetes1.21搭建harbor

:github.comgoharborharbor-helm helm必备 当然了这里已经安装了helm3,helm环境是必备的 wget https:get.helm.shhelm-v3.6.3-linux-amd64 .tar.gztar zxvf helm-v3.6.3-linux-amd64.tar.gcd linux-amd64cp helm usrlocalbin helm fetch 这里也可以直接helm --namespace kube-ops 如删除harbor应用,则: helm uninstall harbor -n kube-ops traefik代理harbor对外暴露应用: ingressroute --namespace kube-ops 注意:这里绑定了 另外一个域名! web访问也是正常的! kubectl create secret tls all-xxxx-com --key=2_xxxx.com.key --cert=1_xxxx.com_bundle.crt -n kube-ops

23150

java nio 源码分析1 事件注册

selectpublic static Selector open() throws IOException { return SelectorProvider.provider().openSelector();}linux isOpen()) throw new ClosedChannelException(); if ((ops & ~validOps()) ! = null) { k.interestOps(ops); 更新注册事件 k.attach(att); } if (k == null) { New registration synchronized isOpen()) throw new ClosedChannelException(); k = ((AbstractSelector)sel).register(this, ops, att); (attachment); synchronized (publicKeys) { implRegister(k); Selector注册该SelectionKey } k.interestOps(ops

26620
  • 广告
    关闭

    云产品限时秒杀

    云服务器1核2G首年50元,还有多款热门云产品满足您的上云需求

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux中配置sudo免密钥

    Linux中配置sudo免密钥? 今天周五,又是一个周中最美好的时候,因为明天不用上班啊,可以干自己想干的事情,想想就激动的不行。 今天写一点简单的东西,是关于Linux的,我们在使用Linux系统命令的时候,经常需要sudo权限,使用sudo+命令的方式,可以让你的命令获取上层的root权限之后去执行这个命令。 可以看到,我这个目录下面放了两个文件,这两个文件中的内容都是类似的,形式是:#cat 99-ansible-ops dba_mysql ALL=(ALL) NOPASSWD:ALLdba_redis -r--. 1 root root 70 Aug 25 2017 20_nrpe_check_yum-rw-r--r-- 1 root root 42 Jul 17 14:06 99-ansible-ops # chmod 777 99-ansible-ops # vim 99-ansible-ops # chmod 440 99-ansible-ops 我们按照上面的样子配置一个mysql用户的记录,如下

    1.2K10

    LVM-HOWTO学习笔记(五)

    ACTIVE PV devsda of VG dev pvscan -- ACTIVE PV devsdb of VG sales pvscan -- ACTIVE PV devsdc of VG ops devsdg2 to devsdf # pvmove devsdg1 devsde pvmove -- moving physical extents in active volume group ops and add it into design. # vgreduce ops devsdg1 vgreduce -- doing automatic backup of volume group ops vgreduce -- volume group ops successfully reduced by physical volume: vgreduce -- devsdg1 # vgextend mke2fs devdesignusers mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 950809 Filesystem label= OS type: Linux

    18650

    Linux内核笔记之中断映射

    硬中断和虚拟中断号在Linux 内核笔记之高层中断处理一文中,介绍了ARM gic中断控制器对于硬中断的处理过程。 对于软件工程师而言,我们不需要care是中断哪个中断控制器的第几个中断号, 因此linux kernel提供了一个虚拟中断号的概念。 irq_domain接下来讨论硬件中断号是如何映射到虚拟中断号的linux kernel提供irq_domain的管理框架, 将hwirq映射到虚拟中断号上。 irq_domain数据结构:struct irq_domain { struct list_head link; const char *name; const struct irq_domain_ops *ops irq_domain, 每一个irq_domain都定义了一系列的映射相关的方法 +-> irq_domain_translate 解析中断信息,如硬件中断号, 中断出发类型 +-> domain->ops

    26030

    linux源码看socket的阻塞和非阻塞 顶

    linux源码看socket的阻塞和非阻塞笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 大部分高性能网络框架采用的是非阻塞模式。 笔者这次就从linux源码的角度来阐述socket阻塞(block)和非阻塞(non_block)的区别。 本文源码均来自采用Linux-2.6.24内核版本。 这边answer指的是SOCK_STREAM sock->ops = answer->ops; answer_no_check = answer->no_check; 这边sk->prot就是answer_prot 从上述代码,我们可以清楚的发现sock->ops=&inet_stream_ops;const struct proto_ops inet_stream_ops = { .family = PF_INET 希望笔者这篇文章能帮助到阅读linux网络协议栈代码的人。

    90020

    Redis删除特定前缀key的优雅实现

    可能你一通搜索后会得到下边的答案redis-cli --raw keys ops-coffee-* | xargs redis-cli del直接在linux下通过redis的keys命令匹配到所有的key -* 1) 382) 1) ops-coffee-25 2) ops-coffee-19 3) ops-coffee-29 4) ops-coffee-10 5) ops-coffee-23 6) ops-coffee -5 7) ops-coffee-14 8) ops-coffee-16 9) ops-coffee-11 10) ops-coffee-15 11) ops-coffee-7 12) ops-coffee -21 4) ops-coffee-6 5) ops-coffee-30 6) ops-coffee-20 7) ops-coffee-2 8) ops-coffee-12 9) ops-coffee- 28 10) ops-coffee-3 11) ops-coffee-26 12) ops-coffee-4 13) ops-coffee-31 14) ops-coffee-8 15) ops-coffee

    2.7K31

    Redis删除特定前缀key的优雅实现

    可能你一通搜索后会得到下边的答案redis-cli --raw keys ops-coffee-* | xargs redis-cli del直接在linux下通过redis的keys命令匹配到所有的key -* 1) 382) 1) ops-coffee-25 2) ops-coffee-19 3) ops-coffee-29 4) ops-coffee-10 5) ops-coffee-23 6) ops-coffee -5 7) ops-coffee-14 8) ops-coffee-16 9) ops-coffee-11 10) ops-coffee-15 11) ops-coffee-7 12) ops-coffee -21 4) ops-coffee-6 5) ops-coffee-30 6) ops-coffee-20 7) ops-coffee-2 8) ops-coffee-12 9) ops-coffee- 28 10) ops-coffee-3 11) ops-coffee-26 12) ops-coffee-4 13) ops-coffee-31 14) ops-coffee-8 15) ops-coffee

    59620

    linux源码看socket的阻塞和非阻塞

    笔者这次就从linux源码的角度来阐述socket阻塞(block)和非阻塞(non_block)的区别。 本文源码均来自采用Linux-2.6.24内核版本。 sock_create |->__sock_create进一步分析__sock_create的代码判断:const struct net_proto_family *pf; RCU(Read-Copy Update)是linux 这边answer指的是SOCK_STREAM sock->ops = answer->ops; answer_no_check = answer->no_check; 这边sk->prot就是answer_prot static void process_timeout(unsigned long __data){ wake_up_process((struct task_struct *)__data);}总结linux 希望笔者这篇文章能帮助到阅读linux网络协议栈代码的人。

    18420

    Linux tcpip 源码分析 - socket

    Linux下的tcp编程中,第一步就是要创建socket,本文将从源码角度看下socket是如何被创建的。 本文使用的linux内核版本为 ➜ bionic git:(ffdd392b8196) git remote get-url origingit:git.launchpad.net~ubuntu-kernelubuntu 将answer->ops字段赋值给sock->ops,最终值为&inet_stream_ops。 有关epoll的源码分析,请参见Linux epoll 源码分析 1 Linux epoll 源码分析 2 Linux epoll 源码分析 3 5. 4. sock->ops字段值为&inet_stream_ops。5. sock->sk字段对应的值的类型为struct sock,该类型为内核内部实际用来存储socket数据的地方。

    1.9K20

    Kubernetes 1.20.5 helm 安装jenkins

    安装helm上传tar.gz包到服务器(我是master节点随机了都可以的)tar zxvf helm-v3.5.3-linux-amd64.tar.gz mv linux-amd64helm usrbinhelmok helm delete jenkins -n kube-opshelm install -f values.yaml jenkins jenkinsjenkins -n kube-ops果然注释掉直接就启动了 等待pod 初始化启动完成4.2 初始化密码在log中查找 先传统方式找一遍密码:kubectl logs -f jenkins-0 jenkins -n kube-ops嗯密码不在log中的4.3. 正确获取jenkins初始密码的方式secretprintf $(kubectl get secret --namespace kube-ops jenkins -o jsonpath={.data.jenkins-admin-password jenkins-ingress.yamlapiVersion: traefik.containo.usv1alpha1kind: IngressRoutemetadata: namespace: kube-ops

    50252

    【Java NIO空轮询bug和Netty中的解决方法】

    bug_id=6670302 简单来说:epoll机制是Linux下一种高效的IO复用方式,相较于select和poll机制来说。 使用IO复用,Linux下一般默认就是epoll,Java NIO在Linux下默认也是epoll机制,但是JDK中epoll的实现却是有漏洞的,其中最有名的java nio epoll bug就是即使是关注的 selector.selectedKeys().iterator(); while (it.hasNext()) { SelectionKey selected = (SelectionKey) it.next(); int ops = selected.interestOps(); try { process new connection if ((ops & SelectionKey.OP_ACCEPT) ! SERVER ACCEPTED AND REGISTER READ OP : client - + clientChannel.socket().getInetAddress()); } if ((ops

    67840

    深入理解TCPIP协议的实现之socket(基于linux1.2.13)

    sock_socket(int family, int type, int protocol){ int i, fd; struct socket *sock; struct proto_ops *ops (sock = sock_alloc())) { ... } 设置类型和操作函数集 sock->type = type; sock->ops = ops; if ((i = sock->ops->create struct socket { short type; * SOCK_STREAM, ... * socket_state state; long flags; struct proto_ops *ops 这要说到网络协议的复杂性,而这个设计就是linux对这个复杂性的解决方案。我们回头看看socket函数的参数。 linux给出的方案是在sock结构体中定义一个字段,根据子类型type的值,指向不同的底层协议函数集。 ?在申请完sock结构体并且和socket结构体互相关联后。

    31690

    运维利器-ClusterShell集群管理操作记录

    ClusterShell就是这样一种小的集群管理工具,原理是利用ssh,可以说是Linux系统下非常好用的运维利器! 、ops-server2、ops-server3、ops-server4需求:利用ops-server1服务器控制其他三台服务器进行集群操作.那么只需要在ops-server1上安装clustershell : ops-server3ops-server4: ops-server4# clush -b -a hostname---------------ops-server2---------------ops-server2 ---------------ops-server3---------------ops-server3---------------ops-server4---------------ops-server4 : ops-server3ops-server2: ops-server2# clush -a -x ops-server2,ops-server4 hostnameops-server3: ops-server3clush

    1K70

    Linux内核网络udp数据包发送(一)

    本系列文章1-4,来源于陈莉君老师公众号“Linux内核之旅” 1. = answer->ops; 可以在 af_inet.c 中看到所有协议的初始化参数。 发送网络数据用户程序想发送 UDP 网络数据,因此它使用 sendto 系统调用:ret = sendto(socket, buffer, buflen, 0, &dest, sizeof(dest)); 该系统调用穿过Linux 总结了解Linux内核网络数据包发送的详细过程,有助于我们进行网络监控和调优。本文只分析了协议层的注册和通过 socket 发送数据的过程,数据在传输层和网络层的详细发送过程将在下一篇文章中分析。 参考链接: https:blog.packagecloud.ioeng20170206monitoring-tuning-linux-networking-stack-sending-data https

    25751

    从linux5.9看网络层的设计

    今天分析的内容是从socket函数开始,看看linux网络层的设计。下面我们看一下我们平时写网络编程代码时的用法。#include int fd = socket(...);bind(fd, ...) 这得益于Linux的VFS(虚拟文件系统),VFS为文件系统抽象了一套API,实现了该系列API就可以把对应的资源当作文件使用,我们来看看网络层中关于这部分的实现。我们知道文件系统有以下关系。? int sock_register(const struct net_proto_family *ops){ int err; spin_lock(&net_family_lock); 把ops加入到数组中 = sb->s_op; struct inode *inode; alloc_inode指向sock_alloc_inode函数 if (ops->alloc_inode) inode = ops- 很多同学应该都知道Linux万物皆文件的哲学思想,当我们调用socket拿到一个结构体后,并不是把这个结构体返回给调用方,而是返回一个文件描述符fd。

    16030

    浅谈 Linux 中 Selector 的实现原理

    EPollArrayWrapperEPollArrayWrapper完成了对epoll文件描述符的构建,以及对linux系统的epoll指令操纵的封装。 EPollArrayWrapper操纵了一个linux系统下epoll_event结构的本地数组。 EPollArrayWrapper将Linux的epoll相关系统调用封装成了native方法供EpollSelectorImpl使用。 isOpen()) throw new ClosedChannelException(); if ((ops & ~validOps()) ! = null) { k.interestOps(ops); k.attach(att); } if (k == null) { New registration synchronized (keyLock

    1K20

    Android系统的开机画面显示过程分析

    logo *                 logo = &logo_linux_mono;  #endif #ifdef CONFIG_LOGO_SUPERH_MONO * SuperH Linux  &logo_superh_mono;  #endif         }   if (depth >= 4) {  #ifdef CONFIG_LOGO_LINUX_VGA16 * Generic Linux  logo *                 logo = &logo_parisc_clut224;  #endif #ifdef CONFIG_LOGO_SGI_CLUT224 * SGI Linux int fbcon_switch(struct vc_data *vc)  {   struct fb_info *info, *old_info = NULL;   struct fbcon_ops *ops logo_shown = fg_console;   * This is protected above by initmem_freed *                 fb_show_logo(info, ops

    39200

    ops自动化

    有了监控后,我们就可以进行下一步操作:将所有项目的打包工作交给jenkins。当然,现实中是逐步实现的,并不是一步到位的。

    14030

    新词:QA-Ops

    DevOps指软件开发(Dev)和IT运维(Ops),并在开发和IT运营之间建立关系。将DevOps引入业务实践的目的是改善两个业务部门之间的协作。 将Dev&Ops&QA集成实现QAOps框架的最终实践是使QA成为CI CD流程的一部分。

    21620

    相关产品

    • TencentOS Server

      TencentOS Server

      腾讯服务器操作系统(TencentOS Server,TS)是腾讯云推出的Linux操作系统,它旨在为云上运行的应用程序提供稳定、安全和高性能的执行环境。它可以运行在腾讯云CVM全规格实例上,包括黑石2.0服务器。

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注云+社区

      领取腾讯云代金券