[TOC] 0x00 前言简述 kubernetes 源码编译,分为本地二进制可执行文件编译和 docker 镜像编译两种, 之前演示的 minikube 方式或 kubeadm 方式安装,都是基于第二种...docker 镜像方式运行,当然也可以基于二进制文件方式安装,不管哪种方式,都是直接使用并不需要修改任何 k8s 代码。...作为 go 执行的工作路径 export GOROOT=/home/weiyigeek/app/program/go # go 安装目录 export PATH=$PATH:${...镜像安装 描述: 安装Docker以及加速源的配置这里不再累述了,不会的读者参考官网或者本博客中的Docker安装流程; # 运行容器,并进入到容器内部 docker run --rm -it -v...集群证书; Kubernetes 与 Etcd 版本与证书关联信息说明: Etcd 版本小于等于v1.9版本,etcd默认是不使用TLS连接,没有etcd相关证书,只需要更新master证书即可。
您可以通过单击下面的下载来下载文件,或将以下内容复制并粘贴到相应的输入中进行安装。 SSL证书在90天后过期,因此请务必重新生成您的SSL证书,否则您的网站可能会停止工作。...如果您需要,也可以删除所有验证文件夹,文件或TXT记录,因为它们仅用于验证目的。 域名已添加到您的帐户中。 您将在域名即将到期前一周收到通知。...生成的证书放在该目录下:/home/www/.acme.sh/ 自动生成一个定时任务,每天凌晨0:00自动检测过期域名并且自动续期 19 0 * * * "/home/www/.acme.sh"/acme.sh...--cron --home "/home/www/.acme.sh" > /dev/null 3、domain自行替换成自己的域名 server { server_name xx.domain.com.../acme.sh/tinywan.top/fullchain.cer 保存目录 Linux 环境 : /home/www/openssl Windows 环境 : D:\Git\docker-lnmp
我们前面关于Fabric的所有文章中用到的例子都没有CA Server,都是由cryptogen这个工具根据crypto-config.yaml而生成的。...文件,增加CA容器 我们就以给org1这个组织增加CA容器为例,打开e2e_cli文件夹中的docker-compose-cli.yaml ,增加以下内容: ca0: image: hyperledger...这个时候我们可以去$HOME/ca目录,看到CA Client创建了一个fabric-ca-client-config.yaml文件和一个msp文件夹。...@localhost:7054 -M $FABRIC_CA_CLIENT_HOME/devinmsp 现在新用户devin的私钥和证书就在$HOME/ca/devinmsp目录下,我们可以使用tree命令查看一下...msp文件夹下的admincerts文件夹,但是CA Client在生成的时候并没有这个文件夹,所以我们需要从signcerts这个文件夹中拷贝一个过来,运行以下命令: mkdir devin/msp/
远程会议:对于跨地区或不同地点的团队,可以使用briefing来举行远程会议。通过视频群聊的方式,可以方便地与会员交流和讨论。这种形式的会议能够节省时间和费用,并提高团队协作效率。...2.3 Yarn介绍 Yarn是一个JavaScript包管理工具,由Facebook开发,旨在提高包的下载速度和稳定性。它可以替代NPM进行包的安装、更新、卸载等操作。...├── docker-zerva.env ├── docs ├── icon.png ├── index.html ├── LICENSE.txt ├── locales ├── package.json...Jan 02 11:09:23 jeven apachectl[956818]: AH00558: apache2: Could not reliably determine the server's.../16 (END) 8.3 拷贝网站文件 将briefing源码目录下的www目录文件都拷贝网站根目录/var/www/html下 cp -a www/* /var/www/html/ 重启apache2
我们将使该用户成为该tomcat组的成员,它有/opt/tomcat的主目录(我们将安装Tomcat)和 /bin/false的shell(因此没有人可以登录该帐户): sudo useradd -s...在/etc/systemd/system目录中键入以下内容以打开一个名为tomcat.service的文件: sudo nano /etc/systemd/system/tomcat.service 将以下内容粘贴到您的服务文件中...-05 20:47:44 UTC; 3s ago Process: 9037 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/...Sep 05 20:47:44 tomcat systemd[1]: Started Apache Tomcat Web Application Container....要更改对这些的IP地址限制,请打开相应的context.xml文件。
例如,这里我提前在机器 /var/jenkins_home/go 目录安装好了系统对应版本的 Go-1.11 版本的安装包,直接配置即可。...最后执行拉取依赖和编译,启动编译后的文件即可。 接下来,制作镜像并启动一下看下。 $ docker build -t go-project/apiproject:v1.0.1 ....Sending build context to Docker daemon 2.655MB Step 1/5 : FROM golang:1.11 ---> fb7a47d8605b Step 2...首先我们新建一个名称为 Multistage.dockerfile 的 dokerfile 文件如下。...,这样就忽略掉本身所在项目,或者只执行 go get 即不执行更新。
47:39 UTC 2020 vol-emptydir-pod Fri Jun 12 02:47:49 UTC 2020 vol-emptydir-pod Fri Jun 12 02:47:59 UTC...节点存储卷 hostPath hostPath类型的存储卷是指将工作节点上某文件系统的目录或文件挂载于Pod中的一种存储卷,它可独立于Pod资源的生命周期,因而具有持久性。...另外,使用hostPath存储卷时需要注意到,不同节点上的文件或许并不完全相同,于是,那些要求事先必须存在的文件或目录的满足状态也可能会有所不同;另外基于资源可用状态的调度器Pod时,hostPath资源的可用性状态不会被考虑在内...;再者,在节点中创建的文件或目录默认仅有root可写,若期望容器内的进程拥有写权限,则要么将它们运行为特权容器,要么修改节点上的目录权限。...那些并非执行系统级管理任务的且不受控于Daemonset控制器的无状态应用在Pod资源被重新调度至其它节点运行时,此前创建的文件或目录大多数都不会存在。
运行该流程的整套说明Jenkinsfile位于源存储库的根目录中。该单个文件告诉服务器该做什么,何时做以及如何执行这些任务。...>/jenkins-guide.git 打开您喜欢的文本编辑器,并app.js在存储库的根目录下创建该文件。...每个图像都有自己的文件夹,其中包含相应的Dockerfile和package.json。.../home/node/app WORKDIR /home/node/app # Install server dependencies COPY /express-image/package.json...Dockerfile package.json将项目目录根目录中的文件复制到新映像中: ~/jenkins-guide/express-image/package.json { "name": "express-image
另外需要说明的是上面的列表中没有包含 kubelet.conf,因为 kubeadm 将 kubelet 配置为自动更新证书。...另外 kubeadm 会在控制面板升级的时候自动更新所有证书,所以使用 kubeadm 搭建的集群最佳的做法是经常升级集群,这样可以确保你的集群保持最新状态并保持合理的安全性。...admin 配置文件覆盖掉原本的 admin 文件: $ mv $HOME/.kube/config $HOME/.kube/config.old $ cp -i /etc/kubernetes/admin.conf...对于线上环境我们可能并不会去冒险经常更新集群或者去更新证书,这些毕竟是有风险的,所以我们希望生成的证书有效期足够长,虽然从安全性角度来说不推荐这样做,但是对于某些场景下一个足够长的证书有效期也是非常有必要的...由于我们当前版本的 kubelet 默认开启了证书自动轮转,所以 kubelet 的证书也不用再去管理了,这样我就将证书更新成10有效期了。
另外需要说明的是上面的列表中没有包含 kubelet.conf,因为 kubeadm 将 kubelet 配置为自动更新证书。...另外 kubeadm 会在控制面板升级的时候自动更新所有证书,所以使用 kubeadm 搭建得集群最佳的做法是经常升级集群,这样可以确保你的集群保持最新状态并保持合理的安全性。...admin 配置文件覆盖掉原本的 admin 文件: $ mv $HOME/.kube/config $HOME/.kube/config.old $ cp -i /etc/kubernetes/admin.conf...对于线上环境我们可能并不会去冒险经常更新集群或者去更新证书,这些毕竟是有风险的,所以我们希望生成的证书有效期足够长,虽然从安全性角度来说不推荐这样做,但是对于某些场景下一个足够长的证书有效期也是非常有必要的...由于我们当前版本的 kubelet 默认开启了证书自动轮转,所以 kubelet 的证书也不用再去管理了,这样我就将证书更新成10有效期了。
果断去该目录 /var/log/containers/ 下看下确实没有任何容器日志文件,好吧,分析觉得很有可能是 Docker 输出日志的位置跟 Fluentd 监听的日志的位置不一致。...怪不得提示 /var/log/containers/ 下没有任何容器日志文件呢。解决办法就是修改 Docker 的日志驱动为 json-file 方式。...在次打开 https://:/api/v1/proxy/namespaces/kube-system/services/kibana-logging...这样就可以完成 RBAC 的认证过程。...同时 Kubernetes API Server 还更新了一个 –anonymous-auth 选项,允许匿名请求访问 secure port,就像我上边访问地址报错一样,属于匿名请求。
(注:我是先将所以的repositories删除再作以下操作的,还把 /var/opt/gitlab/git-data/repositories/用户名 目录下所有用户名下的文件全删除,目录删的只剩下空文件夹...04-16 09:44:53 +0800 -- Dumping pages ... # 2020-04-16 09:44:53 +0800 -- done # 2020-04-16 09:44:53 +...WeiyiGeek. (2)GitLab数据库引起的502错误问题及解决方案 描述:打开GitLab的主页地址http:/gitlab.weiyigeek.top/报错502,重启或检查状态发现都正常sudo...,所以直接安装时,程序检测到配置文件,数据文件时就会跳过没有覆盖,新版本使用旧版本的数据文件[因为版本相差太多了]就会无法识别导致。...解决方法:卸载完旧版本后,记得删除旧的安装数据配置文件,安装目录,数据目录等,重新安装新版的gitlab-ce即可正常启动。
"mysql" #挂在两个目录,一个日志目录,一个web目录 volumes: - /home/xxxxxx/docker/nswp/www:/usr/local/tomcat/webapps - /home.../mysql ports: - "43306:3306" # 将msyql的数据库文件存储在本地 volumes: - /home/xxxxxx/docker/nswp/data/mysql:/var/...一些测试结果 在没有修改docker-compose.yml的情况下,使用docker-compose build后重新启动容器,发现对数据库的变更没有修改,经过分析是这样的,我们对数据库的数据库文件时挂在主机上的...,主机上的数据库文件并没有进行修改,所以在启动mysql实例的时候,经过mysql检查有数据库文件存在并没有重新创建文件,则使用的是过去老的文件,而数据库元数据也在这些文件中,所有就不会产生数据库文件丢失或者修改的问题...临时关闭selinux 1 setenforce 0 当然,没有了安全模块,那么目录就是随便访问挂载了。这个方案最好还是只测试用,用完了以后记得打开selinux。
或-/.profile,缺省情况下,bash作为登录的shell时以这些文件作为启动文件 --rcfile文件名:如果bash是交互的,则以此文件作为bash的启动文件替代-/.bashrc --login...Stop...\033[37;47;0m" echo -e "\e[37;31;1;5mMySQL Server Stop......描述:用于打印目录或者文件的基本名称,basename和dirname命令通常用于shell脚本中的命令替换来指定和指定的输入文件名称有所差异的输出文件名称。....c`.o #重新拼接的program.o文件 dirname 命令 - 取得目录名称 描述:去除文件名中的非目录部分,仅显示与目录有关的内容,dirname命令读取指定路径名保留最后一个/及其后面的字符...实际案例: #示例1.出现绝对路径中的文件名称,返回起文件存在的路径目录 $dirname /home/tank/test.bz2 /home/tank dirname /usr/bin/
/docker/data -P 80:80 nginx:latest #后台启动并运名为nginx的容器,然后将容器的80端口映射到物理机的80端口,并且将物理机的/docker/data目录映射到容器的...#创建一个名为myserver的容器 5、docker exec 在运行的容器中执行命令 常用参数如下: -d #在后台运行 -i #保持STDIN打开 -t #分配一个伪终端...获取容器的元数据 常用参数如下: -f #指定返回值格式或模板文件 -s #显示总文件大小 --type #为指定类型返回JSON 实例操作如下: [root@docker...:/web /data/ #拷贝容器bd96d72ed9c7:/web/目录到物理主机中的/data/目录下 12、docker login/logout 用于登录与登出容器镜像仓库 docker...是一样的,只是TAG改变了,类似于linux中文件与文件的硬链接一样,其两者的inode号相同。
(注:我是先将所以的repositories删除再作以下操作的,还把 /var/opt/gitlab/git-data/repositories/用户名 目录下所有用户名下的文件全删除,目录删的只剩下空文件夹...2020-04-16 09:44:53 +0800 -- done # 2020-04-16 09:44:53 +0800 -- Dumping uploads ... # 2020-04-16 09:...04-16 09:44:53 +0800 -- Dumping pages ... # 2020-04-16 09:44:53 +0800 -- done # 2020-04-16 09:44:53 +...,所以直接安装时,程序检测到配置文件,数据文件时就会跳过没有覆盖,新版本使用旧版本的数据文件因为版本相差太多了就会无法识别导致。...解决方法:卸载完旧版本后,记得删除旧的安装数据配置文件,安装目录,数据目录等,重新安装新版的gitlab-ce即可正常启动。
项目根目录增加 .gitlab-ci.yml 文件 配置一个 Runner GitLab-Runner GitLab-Runner 是配合 GitLab-CI 进行使用的。...这时 GitLab-CI 会找出与这个工程相关联的Runner,并通知这些Runner把代码更新到本地并执行预定义好的执行脚本。...# 查看操作系统 $ uname -a Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC...问: gitlab-ci 生成的文件在哪里 答: .如上述生成的目录为 /home/gitlab-runner/builds/1f929e69/0/gitlab-group/demo-collection...问: gitlab-ci 日志文件在哪里 答: 如上述生成的目录为 /home/gitlab-runner/.npm/_logs/2019-04-29T09_51_27_384Z-debug.log
serving the Kubernetes API renewed apiserver-etcd-client is not a valid certificate for this cluster # 这样就造成后面的证书没有办法续期了...,目前看官方没有提供跳过指定证书续期的方法。...# 进入/etc/kubernetes管理目录 [root@k8s-master01 ~]# cd /etc/kubernetes/ # 续订kubeconfig文件中嵌入的证书,供管理员和kubeadm...因为我们更新的是apiserver、controller-manager、scheduler服务的证书,所以我们重启对应docker即可,详细操作如下: # 登录各管理节点,进行以下操作 docker...| awk '{print $1}'` docker kill `docker ps | grep scheduler | awk '{print $1}'` 另外因为kubelet客户端证书也已经更新
打开项目根目录下的 package.json,并向其添加以下 scripts 属性。...准备 Git 如果计划使用 Git 作为版本控制工具,强烈建议忽略生成的文件,例如二进制文件或日志。 为此,请在项目的根目录下创建一个名为 .gitignore 的新文件,并将以下内容复制到其中。...为此,我们将需要更新 package.json 文件: package.json { "name": "@my-app/common", "version": "0.1.0", "license...在我们的案例中,我们希望有一个可以运行 Node.js 应用程序的环境。 WORKDIR 设置容器中的当前工作目录。 COPY 将文件或文件夹从当前本地目录(项目的根目录)复制到容器中的工作目录。...添加 .dockerignore 使用 .dockerignore 文件不是强制性的,但强烈建议您使用以下文件: 确保您没有将垃圾文件复制到容器中。 使 COPY 命令的使用更加容易。
更新集群 集群的更新操作有很多,比如创建或删除应用、添加或者删除节点等,这里主要介绍几种常用的操作: 升级集群 更新集群证书 添加或删除集群 升级集群 Kubernetes社区新版本的推出速度很快的,至少保持一年...在实际生产中,我们可能不会频繁的升级集群,因为这样的动作太大,可能导致其他生产问题。...containerd运行时没有重启容器的命令,所以这里采用是直接移出再拷贝进来的操作。如果底层安装有docker,可以使用docker命令进行重启。...:21 UTC 364d etcd-ca no etcd-server Jul 04, 2023 09...\ --key=/etc/kubernetes/pki/etcd/server.key 备份Ectd需要指定证书,如果执行节点没有,可以从主节点拷贝过来。
领取专属 10元无门槛券
手把手带您无忧上云