使用go 1.14 版本
#wget https://golang.org/dl/go1.14.15.linux-amd64.tar.gz
#tar zxvf go1.14.15.linux-amd64.tar.gz
#mv go /usr/local/
#vim /etc/profile
1 | export GOROOT=/usr/local/go |
使用go 1.14 版本
#wget https://golang.org/dl/go1.14.15.linux-amd64.tar.gz
#tar zxvf go1.14.15.linux-amd64.tar.gz
#mv go /usr/local/
#vim /etc/profile
1 | export GOROOT=/usr/local/go |
OCI 标准是为了避免容器标准被 Docker 独家挟持而出现的。
CRI 标准将 Kubelet 与运行时解耦,实现 CRI 标准的容器管理程序都可以用于 Pod 创建。
CRI-O 插件同时实现了 CRI 和 OCI 标准,可以用于替换 Containerd 直接与 runV 等 OCI runtime 对接。
如下图:
为了兼容 OCI 标准,Docker 将管理运行时的功能从 Docker Daemon 中剥离出来,形成了 Containerd 。在运行容器时,可以不用 Docker 的 runc ,而替换为 kata-runtime 。
如下图,Kata 主要替换的是 OCI runtime 层,其他部分与基于 Docker runc 的 Kubernetes 并无差异。同时,基于 kata-runtime 的 Pod 和基于 runc 的 Pod 可以共存于集群之中。
目前的主要问题是,Kata 不支持 host 网络。而 Kubernetes 中,etcd、nodelocaldns、kube-apiserver、kube-scheduler、metrics-server、node-exporter、kube-proxy、calico、kube-controller-manager 等,也就是 Static Pod 和 Daemonset 都会使用 host 网络。所以在安装部署时,依然使用 runc 作为默认的运行时,而将 kata-runtime 作为可选的运行时给特定的负载使用。
因为延时问题,openstack 集群因为需要更换mysql地址,
原本以为变更完yaml使用 kolla-ansible reconfigure 一下就可以了,但发现仍然有部分连接旧mysql数据库
排查发现连接的nova_cell0数据库
1 | #grep mysql -R /etc/kolla |
由于是连接的nova_cell0 , 想到cell设计为了拆分数据库等,查一下数据库吧?
1 | #mysql -h*************** |
问题解决~
主机需要有一个唯一的uuid,对于物理机存在主板uuid获取不到的情况,所以根据相关信息,生成一个
1 | #!/usr/bin/env python |
KVM是最底层的hypervisor,它是用来模拟CPU的运行,它缺少了对network和周边I/O的支持,所以我们是没法直接用它的。
QEMU-KVM就是一个完整的模拟器,它是构建基于KVM上面的,它提供了完整的网络和I/O支持。
Openstack不会直接控制qemu-kvm,它会用一个叫libvirt的库去间接控制qemu-kvm。libvirt提供了跨VM平台的功能,它可以控制除了QEMU之外的模拟器,包括vmware, virtualbox, xen等等。
所以为了openstack的跨VM性,所以openstack只会用libvirt而不直接用qemu-kvm。libvirt还提供了一些高级的功能,例如pool/vol管理。
重新生成证书
检查过期
新版本(1.15+):kubeadm alpha certs check-expiration
或
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep ‘ Not ‘
其他同理
证书备份
cp -rp /etc/kubernetes /etc/kubernetes.bak
移除过期证书
rm -f /etc/kubernetes/pki/apiserver*
rm -f /etc/kubernetes/pki/front-proxy-client.*
rm -rf /etc/kubernetes/pki/etcd/healthcheck-client.*
rm -rf /etc/kubernetes/pki/etcd/server.*
rm -rf /etc/kubernetes/pki/etcd/peer.*
备注:可以使用命令openssl x509 -in [证书全路径] -noout -text查看证书详情。
重新生成证书
老版本:kubeadm alpha phase certs all
或
新版本(1.15+):kubeadm alpha certs renew all 使用该命令不用提前删除过期证书
重新生成配置文件
mv /etc/kubernetes/*.conf /tmp/
老版本:kubeadm alpha phase kubeconfig all
或
新版本(1.15+):kubeadm init phase kubeconfig all
cp /etc/kubernetes/admin.conf ~/.kube/config
重启kubelet
systemctl restart kubelet
证书过期时间确认
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep ‘ Not ‘
其他同理
集群确认
kubectl get nodes
docker ps | grep apiserver
docker ps | grep scheduler
docker ps | grep controller-manager
docker restart 容器标识
做一个有底蕴的软件工作者
CentOS 8 .上没有默认的python
命令。要运行python 3,需要使用命令:
1 | #dnf install python3 |
基于CentOS 7 x86_64 rabbitmq 3.8
1 | 安装docker-ce环境 |
1 | #mkdir -p /data/rabbitmq/rabbit-docker-database |
1 | 主节点 120 执行 |
1 | #docker exec -it myrabbit2 bash # 进入镜像命令行 |
1 | 新增账号权限 |
rabbitmq1 可能会挂掉,可能需要重启 myrabbit1
1 | 启动rabbitmq |