Cloud常用命令
Nova
openstack image create --disk-format qcow2 --container-format bare --public --min-disk 40 --property hw_qemu_guest_agent=yes --property os_distro=redhat --property image_type=server --property os_type=linux --property os_version=7.9 --property hw_architecture=x86_64 --file ./rhel-server-7.9-update-12-x86_64-kvm.qcow2 NewRed79
HA触发频率配置
[default]
host_task_limit_count = 1 # 单个主机执行ha操作的次数限制
host_task_limit_interval = 86400 # 单个主机执行ha操作次数限制的时间间隔
total_task_limit_count = 5 # 全局执行ha操作的次数限制
total_task_limit_interval = 86400 # 全局执行ha操作次数限制的时间间隔
代码中的默认值
cfg.IntOpt('host_task_limit_count',
default=1,
help=''),
cfg.IntOpt('host_task_limit_interval',
default=86400,
help=''),
cfg.IntOpt('total_task_limit_count',
default=5,
help=''),
cfg.IntOpt('total_task_limit_interval',
default=86400,
help=''),
Glance
裸机镜像的属性
hw_architecture='aarch64', hypervisor_type='baremetal', image_type='baremetal', os_distro='kylin', os_hidden='False', os_type='linux', os_version='sp3', support:fl2.64xlarge.physical='true', support:kunpen.large.physical='true'
SLB
openstack image create --disk-format qcow2 --container-format bare --public --min-disk 40 --property hw_qemu_guest_agent=yes --property os_distro=centos --property image_type=server --property os_type=linux --property os_version=0.1 --property hw_architecture=x86_64 --file amphora-centos-4.0.2-sec.qcow2 amphota-centos-4.0.2
Cirros
openstack image create --disk-format qcow2 --container-format bare --public --min-disk 10 --property hw_qemu_guest_agent=yes --property os_distro=cirros --property image_type=server --property os_type=linux --property os_version=0.1 --property hw_architecture=x86_64 --file cirros.qcow2 Cirros
Debian
openstack image create --disk-format qcow2 --container-format bare --public --min-disk 40 --property hw_qemu_guest_agent=yes --property os_distro=debian --property image_type=server --property os_type=linux --property os_version=11.5 --property hw_architecture=x86_64 --file ./debian-11.5.0-amd64.qcow2 Debian11.5
CentOS
openstack image create --disk-format qcow2 --container-format bare --public --min-disk 40 --property hw_qemu_guest_agent=yes --property os_distro=centos --property image_type=server --property os_type=linux --property os_version=7.6 --property hw_architecture=x86_64 --file ./TIM_NG.qcow2 TIMG
从卷创建镜像
openstack image create --volume 7111aaea-feb7-4414-a98c-a07a187194c5 --disk-format qcow2 --container-format bare --public --min-disk 100 --force --property hw_qemu_guest_agent=yes --property os_distro=debian --property image_type=server --property os_type=linux --property os_version=11.5 --property hw_architecture=x86_64 From-TVM-Vol
导入s3的镜像和(仅支持legacy(bios),不支持uefi)
glance image-create-via-insert --name debian115-op --oss-url https://oss-hn01.cloud.com/devops/crc-iaas-init-images/debian-11.5.0-amd64.qcow2 --disk-format qcow2 --container-format bare --access-key QWRtaW5qdE8yRnU= --secret-key 1327149b98dc01a5fe22a3830029902c --property os_type=linux --property hw_architecture=x86_64 --property hw_firmware_type=bios
glance image-create-via-insert --name c.7 --oss-url http://11.9.0.30:9500/iaas-image/597566f8-0cde-49d1-96dc-e22c11a90ee8 --disk-format qcow2 --container-format bare --access-key Z2xhbmNl --secret-key f558398d7462dc84cc9bbbf5b403c2c2 --property os_type=linux --property hw_architecture=x86_64 --property hw_firmware_type=bios --property image_type=server --property os_version=7.7 --property os_distro=centos --property hw_qemu_guest_agent=yes
镜像格式转换
# 转换并压缩
qemu-img convert -O qcow2 -c ubuntu-22.04.iso ubuntu.qcow2
# 检查结果
qemu-img info ubuntu.qcow2
dpdk性能评估
发送端
/usr/bin/testpmd -l 8-191 -w 0000:86:00.1 -- --burst=128 --nb-cores=2 --txd=512 --rxd=512 --txq=16 --rxq=16 --forward-mode=txonly --txpkts=1430 --stats-period=1
接收端
/usr/bin/testpmd -l 8-191 -w 0000:00:05.0 -- --burst=128 --nb-cores=2 --txd=512 --rxd=512 --txq=16 --rxq=16 --forward-mode=rxonly --stats-period=1
/usr/bin/testpmd -l 8-191 -w 0000:00:05.0 -- --burst=128 --nb-cores=32 --txd=512 --rxd=512 --txq=16 --rxq=16 --forward-mode=txonly --txpkts=64 --stats-period=1
consul
查询服务
curl http://172.96.92.6:8500/v1/catalog/service/share-exporter
注册服务
# manila注册
curl -X PUT -d '{"id":"share-exporter-460d43a9-8afb-448f-835b-58113e6e1d97","name":"yz-look","address":"11.100.1.230","port":9101,"tags":["share-exporter"],"checks":[{"http":"http://11.100.1.230:9101/","interval":"5s"}]}' http://11.2.0.30:8500/v1/agent/service/register
# 裸机注册
curl -X PUT -d '{"id":"4b0e11cd-a830-48d9-bf64-541dce92b245","name":"node-exporter","address":"12.1.5.58","port":9100,"tags":["node-exporter"],"checks":[{"http":"http://12.1.5.58:9100/","interval":"5s"}]}' http://12.1.1.30:8500/v1/agent/service/register
去注册服务
# manila去注册
curl --request PUT http://11.9.0.1:8500/v1/agent/service/deregister/share-exporter-460d43a9-8afb-448f-835b-58113e6e1d97
# 裸机去注册
curl --request PUT http://12.1.1.30:8500/v1/agent/service/deregister/4b0e11cd-a830-48d9-bf64-541dce92b245
DPDK+OVS
常用命令
# 查看内了参数
cat /proc/cmdline
# 查看大页配置
grep Huge /proc/meminfo
# 查看ovs的基础配置
ovs-vsctl get Open_vSwitch . other_config
# 查看PMD信息
ovs-appctl dpif-netdev/pmd-stats-show
# 查看ovs支持的端口类型
ovs-vsctl get Open_vSwitch . iface_types
# 查看datapath详情
ovs-appctl dpif/show
Linux
在top中进查看指定pid的进程
top -p 3232 -p 4343
查看网卡速率
# 每秒刷新一次
sar -n DEV 1
绑核大页
# 将名为test的虚拟机vcpu 0 绑定在物理机CPU 7 上
virsh vcpupin test 0 7
# 查询kvm实例的cpu绑定信息
virsh vcpuinfo
虚拟机绑核大页
绑核成功后,virsh dumpxml 5 | grep pin 就能看到对应vcpu 绑定的cpu 大页成功后,virsh dumpxml 5 | grep hug 就能看到对应大页的分配情况
SLB多域名
证书制作
#!/bin/bash
# 定义密码和域名
PASSWORD="yourpassword"
DOMAIN1="test1.test"
DOMAIN2="test2.test"
# 生成第一个证书和私钥
openssl req -newkey rsa:2048 -nodes -keyout test1.key -x509 -days 365 -out test1.crt -subj "/CN=${DOMAIN1}"
openssl pkcs12 -export -out test1.pfx -inkey test1.key -in test1.crt
# 生成第二个证书和私钥
openssl req -newkey rsa:2048 -nodes -keyout test2.key -x509 -days 365 -out test2.crt -subj "/CN=${DOMAIN2}"
openssl pkcs12 -export -out test2.pfx -inkey test2.key -in test2.crt
# 清理中间文件
rm test1.key test1.crt test2.key test2.crt
#echo "Certificates generated: test1.pfx and test2.pfx"
echo "Certificates generated success!"
虚拟化问题
1、证书管理展示的是secret不是container
2、删除证书是删除secret,没有删除container,导致container残留
存储信息
# 研发环境
san_ip = 192.200.94.243
san_login = admin
san_password = Password123!
storage_protocol = FC
unity_storage_pool_names = pool-0
volume_backend_name = Storage_FC_01
volume_driver = cinder.volume.drivers.dell_emc.unity.Driver
10:02
fc_fabric_names = SW_G620_101
fc_fabric_address = 192.200.94.231
fc_fabric_user = admin
fc_fabric_password = password123
principal_switch_wwn = 10:00:c4:f5:7c:b4:22:c4
mysql
创建拥有全部权限而且可以远程登录的用户
CREATE USER 'user1'@'%' IDENTIFIED BY 'panyun@123';
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%';
FLUSH PRIVILEGES;
LLDP
长城服务器X710网卡lldp处理命令
echo "lldp stop" > /sys/kernel/debug/i40e/0000\:06\:00.0/command
echo "lldp stop" > /sys/kernel/debug/i40e/0000\:06\:00.1/command
echo "lldp stop" > /sys/kernel/debug/i40e/0001\:03\:00.0/command
echo "lldp stop" > /sys/kernel/debug/i40e/0001\:03\:00.1/command
echo "lldp stop" > /sys/kernel/debug/i40e/0001\:05\:00.0/command
echo "lldp stop" > /sys/kernel/debug/i40e/0001\:05\:00.1/command
lldp邻居关系无法建立处理命令
for i in `ls /sys/class/net/ | grep "^ens\|^eth\|^p\|^enP"`;
do echo "enabling lldp for interface: $i";
lldptool set-lldp -i $i adminStatus=rxtx;
lldptool -T -i $i -V sysName enableTx=yes;
lldptool -T -i $i -V portDesc enableTx=yes;
lldptool -T -i $i -V sysDesc enableTx=yes;
lldptool -T -i $i -V sysCap enableTx=yes;
lldptool -T -i em1 -V mngAddr ipv4='hostname -I';
lldptool -T -i $i -V mngAddr enableTx=yes;
done
openstack中宿主机和虚机如何传输文件
如果网络互通,可以通过ssh等工具进行传输,但是在网络不通的情况下如何传输文件到虚机呢?
我们可以通过将文件创建为iso,然后将iso以cdrom的方式通过kvm挂载到虚机中,实现文件传输共享
# 1. 创建iso
cd /home
mkdir nnn & cd nnn
cp -r /home/my_files/ .
cd ..
genisoimage -o shared.iso -R -J nnn/
# 2. 修改虚机的xml,路径:/etc/libvirt/qemu/instance-00001c6c.xml
在devices模块下添加
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/home/shared.iso'/>
<target dev='hdd' bus='virtio'/>
<readonly/>
</disk>
# 3. 停起虚机
cd /etc/libvirt/qemu/
virsh shutdown instance-00001c6c
virsh define instance-00001c6c.xml
virsh start instance-00001c6c
# 4. 挂载
进入虚机你会发现,lsblk虚机多了一个设备
mount /dev/vdb /mnt
cd /mnt & ll
不出意外,你就能看到你想要的文件了,即宿主机上/home/my_files/下的所有文件。
kubeadm更新证书
# 1. 检查证书状态
这个命令会列出所有证书及其剩余有效期
kubeadm certs check-expiration
# 2. 备份现有证书
在续期证书之前,建议备份现有的证书,以防万一出现任何问题
mkdir /etc/kubernetes/ssl-backup
cp -r /etc/kubernetes/pki/* /etc/kubernetes/ssl-backup/
# 3. 续期证书
使用 kubeadm certs renew 命令来续期所有或特定的证书。如果你只想续期特定的证书,可以使用 --cert-dir 选项指定目录
# 续期所有证书
kubeadm certs renew all
# 4. 重启 kubelet 和 API 服务器(可选)
在某些情况下,证书更新后可能需要重启 kubelet 或 API 服务器以使更改生效。你可以使用以下命令来重启 kubelet
sudo systemctl restart kubelet
# 5. 验证证书更新
重新运行 kubeadm certs check-expiration 来验证证书是否已成功更新,并检查新的有效期。
kubeadm certs check-expiration