OpenStack RedHat搭建

一、准备环境

控制节点及计算节点必须开启虚拟化引擎Intel VT-x或AMD-V,且控制节点未来将被复用为计算节点;虚拟机配置可根据实际情况进行调整;务必配置 DNS,否则安装过程会出错

主机名 IP 网关/DNS CPU/内存 磁盘 角色 controller 192.168.100.10/24 192.168.100.254 4核 8G 100G 控制节点 compute 192.168.100.20/24 192.168.100.254 4核 4G 100G 计算节点 ntp 192.168.100.30/24 192.168.100.254 4核 2G 50G NTP时钟源

CPU内存配置按自己电脑的性能配置

二、环境配置

2.1 配置主机名

#192.168.100.10
[root@localhost ~]# hostnamectl set-hostname controller
[root@localhost ~]# bash
[root@controller ~]#
#192.168.100.20
[root@localhost ~]# hostnamectl set-hostname compute
[root@localhost ~]# bash
[root@compute ~]#
#192.168.100.30
[root@localhost ~]# hostnamectl set-hostname ntp
[root@localhost ~]# bash
[root@ntp ~]#

2.2 配置主机解析

[root@controller ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.10 controller
192.168.100.20 compute
192.168.100.30 ntp
[root@compute ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.10 controller
192.168.100.20 compute
192.168.100.30 ntp
[root@ntp ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.10 controller
192.168.100.20 compute
192.168.100.30 ntp

2.3 关闭DNS反向解析

实验测试环境建议关闭主机名的反向解析,加速三方工具连接

[root@controller ~]# vi /etc/ssh/sshd_config
[root@compute ~]# vi /etc/ssh/sshd_config
[root@ntp ~]# vi /etc/ssh/sshd_config
查找行 #UseDNS yes,修改为 UseDNS no,保存退出并重启服务
[root@controller ~]# systemctl restart sshd
[root@compute ~]# systemctl restart sshd
[root@ntp ~]# systemctl restart sshd

2.4 配置YUM源

controller 控制节点

[root@controller ~]# rm -rf /etc/yum.repos.d/*
[root@controller ~]# vi /etc/yum.repos.d/osp.repo
[root@controller ~]# cat /etc/yum.repos.d/osp.repo
[osp]
name=osp
baseurl=file:///mnt/
enabled=1
gpgcheck=0
[root@controller ~]# mount /dev/cdrom /mnt/
[root@controller ~]# yum clean all
[root@controller ~]# yum repolist

compute 计算节点

[root@compute ~]# rm -rf /etc/yum.repos.d/*
[root@compute ~]# vi /etc/yum.repos.d/osp.repo
[root@compute ~]# cat /etc/yum.repos.d/osp.repo
[osp]
name=osp
baseurl=file:///mnt/
enabled=1
gpgcheck=0
[root@compute ~]# mount /dev/cdrom /mnt/
[root@compute ~]# yum clean all
[root@compute ~]# yum repolist

ntp 时钟源节点

[root@ntp ~]# rm -rf /etc/yum.repos.d/*
[root@ntp ~]# vi /etc/yum.repos.d/osp.repo
[root@ntp ~]# cat /etc/yum.repos.d/osp.repo
[osp]
name=osp
baseurl=file:///mnt/
enabled=1
gpgcheck=0
[root@ntp ~]# mount /dev/cdrom /mnt/
[root@ntp ~]# yum clean all
[root@ntp ~]# yum repolist

2.5 安装所需包

controller / compute / ntp 分别执行

yum install -y lrzsz \
vim \
bash-completion \
net-tools \
openssl \
openssl-devel \
chrony.x86_64 \
zip \
unzip \
ntpdate \
telnet

加载新的环境变量以实现自动补全
source /etc/profile.d/bash_completion.sh

2.6 关闭防火墙

[root@controller ~]# systemctl stop firewalld.service
[root@controller ~]# systemctl disable firewalld.service

[root@compute ~]# systemctl stop firewalld.service
[root@compute ~]# systemctl disable firewalld.service

[root@ntp ~]# systemctl stop firewalld.service
[root@ntp ~]# systemctl disable firewalld.service

2.7 关闭NetworkManager

[root@controller ~]# systemctl stop NetworkManager.service
[root@controller ~]# systemctl disable NetworkManager.service

[root@compute ~]# systemctl stop NetworkManager.service
[root@compute ~]# systemctl disable NetworkManager.service

[root@ntp ~]# systemctl stop NetworkManager.service
[root@ntp ~]# systemctl disable NetworkManager.service

2.8 关闭SELinux

[root@controller ~]# setenforce 0
[root@controller ~]# vim /etc/selinux/config
SELINUX=enforcing 改成 SELINUX=disabled

[root@compute ~]# setenforce 0
[root@compute ~]# vim /etc/selinux/config
SELINUX=enforcing 改成 SELINUX=disabled

[root@ntp ~]# setenforce 0
[root@ntp ~]# vim /etc/selinux/config
SELINUX=enforcing 改成 SELINUX=disabled

2.9 NTP节点配置 OpenStack YUM 源

创建目录并上传 iso

[root@ntp ~]# mkdir /iso_images
[root@ntp ~]# cd /iso_images/
[root@ntp iso_images]# ls
rhel-server-7.1-x86_64-dvd.iso
RHEL7OSP-6.0-2015-02-23.2-x86_64.iso

安装httpd并启动服务

[root@ntp ~]# yum -y install httpd
[root@ntp ~]# systemctl start httpd
[root@ntp ~]# systemctl enable httpd

创建目录挂载镜像

[root@ntp ~]# cd /var/www/html/
[root@ntp html]# mkdir dvd
[root@ntp html]# mkdir openstack
[root@ntp html]# ls
dvd  openstack
[root@ntp html]# vim /etc/fstab
#
/etc/fstab
Created by anaconda on Tue Aug 23 21:57:25 2022
#
Accessible filesystems, by reference, are maintained under '/dev/disk'
See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root   /                       xfs     defaults        0 0
UUID=8d95dffb-d8e0-48fa-a94e-a19c198b7ca1 /boot                   xfs     defaults        0 0
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
/iso_images/rhel-server-7.1-x86_64-dvd.iso /var/www/html/dvd iso9660 defaults 0 0
/iso_images/RHEL7OSP-6.0-2015-02-23.2-x86_64.iso /var/www/html/openstack iso9660  defaults  0 0
[root@ntp html]# mount -a
mount: /dev/loop0 is write-protected, mounting read-only
mount: /dev/loop1 is write-protected, mounting read-only

配置OpenStack yum源

[root@ntp ~]# vim /etc/yum.repos.d/openstack.repo
[rheliso]
name = rheliso
baseurl = http://192.168.100.30/dvd/
gpgcheck = 0
enabled = 1
[RH7-RHOS-6.0]
name = RH7-RHOS-6.0
baseurl = http://192.168.100.30/openstack/RH7-RHOS-6.0
gpgcheck = 0
enabled = 1
[RH7-RHOS-6.0-Installer]
name = RH7-RHOS-6.0-Installer
baseurl = http://192.168.100.30/openstack/RH7-RHOS-6.0-Installer
gpgcheck = 0
enabled = 1
[RHEL7-Errata]
name = RHEL7-Errata
baseurl = http://192.168.100.30/openstack/RHEL7-Errata
gpgcheck = 0
enabled = 1
[RHEL-7-RHSCL-1.2]
name = RHEL-7-RHSCL-1.2
baseurl = http://192.168.100.30/openstack/RHEL-7-RHSCL-1.2
gpgcheck = 0
enabled = 1
[root@ntp ~]# yum repolist
Loaded plugins: product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

RH7-RHOS-6.0                                          | 1.3 kB     00:00
RH7-RHOS-6.0-Installer                                | 1.2 kB     00:00
RHEL-7-RHSCL-1.2                                      | 3.3 kB     00:00
RHEL7-Errata                                          | 2.9 kB     00:00
rheliso                                               | 4.1 kB     00:00
(1/6): RH7-RHOS-6.0/primary                             | 117 kB   00:00
(2/6): RH7-RHOS-6.0-Installer/primary                   |  47 kB   00:00
(3/6): rheliso/primary_db                               | 3.4 MB   00:00
(4/6): RHEL-7-RHSCL-1.2/primary_db                      | 776 kB   00:00
(5/6): RHEL7-Errata/primary_db                          |  10 kB   00:00
(6/6): rheliso/group_gz                                 | 134 kB   00:00
RH7-RHOS-6.0                                                         393/393
RH7-RHOS-6.0-Installer                                               194/194
repo id                            repo name                           status
RH7-RHOS-6.0                       RH7-RHOS-6.0                          393
RH7-RHOS-6.0-Installer             RH7-RHOS-6.0-Installer                194
RHEL-7-RHSCL-1.2                   RHEL-7-RHSCL-1.2                    1,766
RHEL7-Errata                       RHEL7-Errata                           11
osp                                osp                                 4,371
rheliso                            rheliso                             4,371
repolist: 11,106

将repo文件拷贝到controller节点及compute节点

[root@ntp ~]# scp /etc/yum.repos.d/openstack.repo controller:/etc/yum.repos.d
The authenticity of host 'controller (192.168.100.10)' can't be established.

ECDSA key fingerprint is eb:b1:49:eb:23:17:83:01:89:cd:57:33:07:d6:3d:c2.

Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'controller,192.168.100.10' (ECDSA) to the list of known hosts.

root@controller's password:
openstack.repo                             100%  589     0.6KB/s   00:00
[root@ntp ~]# scp /etc/yum.repos.d/openstack.repo compute:/etc/yum.repos.d
The authenticity of host 'compute (192.168.100.20)' can't be established.

ECDSA key fingerprint is d6:b3:9e:eb:3c:c2:9c:c1:96:52:c8:c2:b2:f3:f7:d4.

Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'compute,192.168.100.20' (ECDSA) to the list of known hosts.

root@compute's password:
openstack.repo                             100%  589     0.6KB/s   00:00

3.0 配置NTP服务

配置ntp服务端

[root@ntp ~]# systemctl restart chronyd.service
[root@ntp ~]# vim /etc/chrony.conf
Please consider joining the pool (http://www.pool.ntp.org/join.html).

#server 0.rhel.pool.ntp.org iburst
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst

Allow NTP client access from local network.

allow 192.168.100/24

Serve time even if not synchronized to any NTP server.

local stratum 10
[root@ntp ~]# systemctl restart chronyd.service

配置ntp客户端

[root@controller ~]# vim /etc/chrony.conf
Use public servers from the pool.ntp.org project.

Please consider joining the pool (http://www.pool.ntp.org/join.html).

#server 0.rhel.pool.ntp.org iburst
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
server ntp iburst
[root@controller ~]# systemctl restart chronyd.service
[root@controller ~]# ntpdate ntp
24 Aug 21:15:18 ntpdate[2057]: adjust time server 192.168.100.30 offset -0.004055 sec

[root@compute ~]# vim /etc/chrony.conf
Use public servers from the pool.ntp.org project.

Please consider joining the pool (http://www.pool.ntp.org/join.html).

#server 0.rhel.pool.ntp.org iburst
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
server ntp iburst
[root@compute ~]# systemctl restart chronyd.service
[root@compute ~]# ntpdate ntp
24 Aug 21:15:45 ntpdate[2019]: adjust time server 192.168.100.30 offset -0.000976 sec

手动配置时间 date -s

三、安装配置

3.1 controller控制节点安装PackStack

[root@controller ~]# yum -y install openstack-packstack

3.2 生成应答文件

[root@controller ~]# packstack -h |grep ans
  --gen-answer-file=GEN_ANSWER_FILE
                        Generate a template of an answer file, using this
  --answer-file=ANSWER_FILE
                        answerfile will also be generated and should be used
  -o, --options         Print details on options available in answer file(rst
                        second time with the same answer file and don't want
[root@controller ~]# packstack --gen-answer-file=/root/cloudcs.txt
Packstack changed given value  to required value /root/.ssh/id_rsa.pub
[root@controller ~]# ls
anaconda-ks.cfg  cloudcs.txt

如在执行 packstack 出现如下错误,请维护 DNS,并重启网卡
ERROR : Local IP address discovery failed. Please set nameserver correctly.

3.3 编辑应答文件

[root@controller ~]# vim cloudcs.txt
CONFIG_NTP_SERVERS=192.168.100.30
CONFIG_CONTROLLER_HOST=192.168.100.10
CONFIG_COMPUTE_HOSTS=192.168.100.10,192.168.100.20
CONFIG_KEYSTONE_REGION=WuHan
CONFIG_KEYSTONE_ADMIN_PW=redhat
CONFIG_HORIZON_SSL=y
CONFIG_PROVISION_DEMO=n

3.4 仅 Server With GUI)重装 MariaDB

[root@controller ~]# yum remove -y mariadb
[root@controller ~]# yum install -y mariadb mariadb-server

Server with GUI 环境会自动安装 mariadb 组件,因依赖关系会导致安装时出现如下错误,解决方案重新安装 mariadb 即可
ERROR : Error appeared during Puppet run: 192.168.100.10_mariadb.pp
Error: Execution of ‘/usr/bin/rpm -e mariadb-server-5.5.41-2.el7_0.x86_64’
returned 1: error: Failed dependencies

3.5 执行应答文件安装

指定应答文件回⻋,输入两次密码开始安装

[root@controller ~]# packstack --answer-file=/root/cloudcs.txt
Welcome to the Packstack setup utility

The installation log file is available at: /var/tmp/packstack/20220824-212618-SphO8b/openstack-setup.log

Installing:
Clean Up                                             [ DONE ]
root@192.168.100.10's password:
root@192.168.100.20's password:
Setting up ssh keys                                  [ DONE ]
Discovering hosts' details                           [ DONE ]
Adding pre install manifest entries                  [ DONE ]
Installing time synchronization via NTP              [ DONE ]
Preparing servers                                    [ DONE ]
Adding AMQP manifest entries                         [ DONE ]
Adding MariaDB manifest entries                      [ DONE ]
Adding Keystone manifest entries                     [ DONE ]
Adding Glance Keystone manifest entries              [ DONE ]
Adding Glance manifest entries                       [ DONE ]
Adding Cinder Keystone manifest entries              [ DONE ]
Checking if the Cinder server has a cinder-volumes vg[ DONE ]
Adding Cinder manifest entries                       [ DONE ]
Adding Nova API manifest entries                     [ DONE ]
Adding Nova Keystone manifest entries                [ DONE ]
Adding Nova Cert manifest entries                    [ DONE ]
Adding Nova Conductor manifest entries               [ DONE ]
Creating ssh keys for Nova migration                 [ DONE ]
Gathering ssh host keys for Nova migration           [ DONE ]
Adding Nova Compute manifest entries                 [ DONE ]
Adding Nova Scheduler manifest entries               [ DONE ]
Adding Nova VNC Proxy manifest entries               [ DONE ]
Adding OpenStack Network-related Nova manifest entries[ DONE ]
Adding Nova Common manifest entries                  [ DONE ]
Adding Neutron API manifest entries                  [ DONE ]
Adding Neutron Keystone manifest entries             [ DONE ]
Adding Neutron L3 manifest entries                   [ DONE ]
Adding Neutron L2 Agent manifest entries             [ DONE ]
Adding Neutron DHCP Agent manifest entries           [ DONE ]
Adding Neutron LBaaS Agent manifest entries          [ DONE ]
Adding Neutron Metering Agent manifest entries       [ DONE ]
Adding Neutron Metadata Agent manifest entries       [ DONE ]
Checking if NetworkManager is enabled and running    [ DONE ]
Adding OpenStack Client manifest entries             [ DONE ]
Adding Horizon manifest entries                      [ DONE ]
Adding Swift Keystone manifest entries               [ DONE ]
Adding Swift builder manifest entries                [ DONE ]
Adding Swift proxy manifest entries                  [ DONE ]
Adding Swift storage manifest entries                [ DONE ]
Adding Swift common manifest entries                 [ DONE ]
Adding MongoDB manifest entries                      [ DONE ]
Adding Redis manifest entries                        [ DONE ]
Adding Ceilometer manifest entries                   [ DONE ]
Adding Ceilometer Keystone manifest entries          [ DONE ]
Adding Nagios server manifest entries                [ DONE ]
Adding Nagios host manifest entries                  [ DONE ]
Adding post install manifest entries                 [ DONE ]
Installing Dependencies                              [ DONE ]
Copying Puppet modules and manifests                 [ DONE ]
Applying 192.168.100.10_prescript.pp
Applying 192.168.100.20_prescript.pp
192.168.100.20_prescript.pp:                         [ DONE ]
192.168.100.10_prescript.pp:                         [ DONE ]
Applying 192.168.100.10_chrony.pp
Applying 192.168.100.20_chrony.pp
192.168.100.10_chrony.pp:                            [ DONE ]
192.168.100.20_chrony.pp:                            [ DONE ]
Applying 192.168.100.10_amqp.pp
Applying 192.168.100.10_mariadb.pp
192.168.100.10_amqp.pp:                              [ DONE ]
192.168.100.10_mariadb.pp:                           [ DONE ]
Applying 192.168.100.10_keystone.pp
Applying 192.168.100.10_glance.pp
Applying 192.168.100.10_cinder.pp
192.168.100.10_keystone.pp:                          [ DONE ]
192.168.100.10_cinder.pp:                            [ DONE ]
192.168.100.10_glance.pp:                            [ DONE ]
Applying 192.168.100.10_api_nova.pp
192.168.100.10_api_nova.pp:                          [ DONE ]
Applying 192.168.100.10_nova.pp
Applying 192.168.100.20_nova.pp
192.168.100.20_nova.pp:                              [ DONE ]
192.168.100.10_nova.pp:                              [ DONE ]
Applying 192.168.100.10_neutron.pp
Applying 192.168.100.20_neutron.pp
192.168.100.20_neutron.pp:                           [ DONE ]
192.168.100.10_neutron.pp:                           [ DONE ]
Applying 192.168.100.10_osclient.pp
Applying 192.168.100.10_horizon.pp
192.168.100.10_osclient.pp:                          [ DONE ]
192.168.100.10_horizon.pp:                           [ DONE ]
Applying 192.168.100.10_ring_swift.pp
192.168.100.10_ring_swift.pp:                        [ DONE ]
Applying 192.168.100.10_swift.pp
192.168.100.10_swift.pp:                             [ DONE ]
Applying 192.168.100.10_mongodb.pp
Applying 192.168.100.10_redis.pp
192.168.100.10_mongodb.pp:                           [ DONE ]
192.168.100.10_redis.pp:                             [ DONE ]
Applying 192.168.100.10_ceilometer.pp
192.168.100.10_ceilometer.pp:                        [ DONE ]
Applying 192.168.100.10_nagios.pp
Applying 192.168.100.10_nagios_nrpe.pp
Applying 192.168.100.20_nagios_nrpe.pp
192.168.100.20_nagios_nrpe.pp:                       [ DONE ]
192.168.100.10_nagios.pp:                            [ DONE ]
192.168.100.10_nagios_nrpe.pp:                       [ DONE ]
Applying 192.168.100.10_postscript.pp
Applying 192.168.100.20_postscript.pp
192.168.100.10_postscript.pp:                        [ DONE ]
192.168.100.20_postscript.pp:                        [ DONE ]
Applying Puppet manifests                            [ DONE ]
Finalizing                                           [ DONE ]

 **** Installation completed successfully ******

Additional information:
 * File /root/keystonerc_admin has been created on OpenStack client host 192.168.100.10. To use the command line tools you need to source the file.

 * NOTE : A certificate was generated to be used for ssl, You should change the ssl certificate configured in /etc/httpd/conf.d/ssl.conf on 192.168.100.10 to use a CA signed cert.

 * To access the OpenStack Dashboard browse to https://192.168.100.10/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.

 * To use Nagios, browse to http://192.168.100.10/nagios username: nagiosadmin, password: 5fbeae9b629948a6
 * The installation log file is available at: /var/tmp/packstack/20220824-214209-ub0Tfy/openstack-setup.log
 * The generated manifests are available at: /var/tmp/packstack/20220824-214209-ub0Tfy/manifests

3.6 配置网卡信息OVS

[root@controller ~]# cd /etc/sysconfig/network-scripts/
[root@controller network-scripts]# cp ifcfg-eno16777728 ifcfg-br-ex
[root@controller network-scripts]# vim ifcfg-br-ex
把所有IPV4和IPV6开头的都删除掉
TYPE=Ethernet 更改为 TYPE=OVSBridge
NAME=eno16777728 更改为 NAME=br-ex
DEVICE=eno16777728 更改为 DEVICE=br-ex
手动添加 DEVICETYPE=ovs

[root@controller network-scripts]# vim ifcfg-eno16777728
删除所有IPV4和IPV6,以及IP地址、子网掩码、DNS
TYPE=Ethernet 更改为 TYPE=OVSPort
手动添加 DEVICETYPE=ovs
手动添加 OVS_BRIDGE=br-ex

[root@controller network-scripts]# systemctl restart network
[root@controller network-scripts]# ovs-vsctl show
e5837374-b913-4c29-b42d-2d668ac2b291
    Bridge br-ex
        Port br-ex
            Interface br-ex
                type: internal
    Bridge br-tun
        fail_mode: secure
        Port "vxlan-c0a86414"
            Interface "vxlan-c0a86414"
                type: vxlan
                options: {df_default="true", in_key=flow, local_ip="192.168.100.10", out_key=flow, remote_ip="192.168.100.20"}
        Port patch-int
            Interface patch-int
                type: patch
                options: {peer=patch-tun}
        Port br-tun
            Interface br-tun
                type: internal
    Bridge br-int
        fail_mode: secure
        Port patch-tun
            Interface patch-tun
                type: patch
                options: {peer=patch-int}
        Port br-int
            Interface br-int
                type: internal
    ovs_version: "2.1.3"

四、完成安装

https://192.168.100.10 登陆

OpenStack RedHat搭建

用户名: admin 密码: redhat (密码由你应答文件设置为准)

OpenStack RedHat搭建

Original: https://www.cnblogs.com/kongshuo/p/16618008.html
Author: kongshuo
Title: OpenStack RedHat搭建

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/585504/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 编写一个简单的linux kernel rootkit

    一、前言 linux kernel rootkit跟普通的应用层rootkit个人感觉不大,个人感觉区别在于一个运行在用户空间中,一个运行在内核空间中;另一个则是编写时调用的API…

    Linux 2023年6月8日
    0108
  • 记一次echo server出现的问题

    1. 我做了什么 最近在学习如何用select函数实现echo server。期间遇到了一个关于缓冲区的问题,在这里分享给大家。 在使用read/recv, write/send类…

    Linux 2023年6月7日
    099
  • 辗转相除法:(求最大公约数)

    辗转相除法:(最大公约数)又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除…

    Linux 2023年6月7日
    0115
  • Nginx 平滑升级(不需要关闭Nginx升级)

    Nginx 平滑升级 对Nginx的版本进行更新,或者要增添新的模块,最简单的方法就是停止当前的Nginx服务,重新编译安装nginx,然后开启新的Nginx服务。但是这样会导致在…

    Linux 2023年6月13日
    088
  • CentOS单机安装k8s并部署.NET 6程序 压测 记录

    前面部分依照CentOS单机安装k8s并部署.NET 6程序来进行,内存、cpu、centos版本一致,之前222元买的三年8M 2c4g 腾讯云轻量服务器,这个教程算是写的很详细…

    Linux 2023年6月7日
    0100
  • Pytorch 中 tensor的维度拼接

    torch.stack() 和 torch.cat() 都可以按照指定的维度进行拼接,但是两者也有区别,torch.satck() 是 增加新的维度进行堆叠,即其维度拼接后会增加一…

    Linux 2023年6月7日
    0104
  • UE4在Windows下交叉编译打包Linux版本

    UE4在Windows下交叉编译打包Linux版本 我使用的是UE4.27.2,Windows 11,项目是一个 纯蓝图项目,所以打包过程没有什么阻碍。 首先上官网下载对应版本的工…

    Linux 2023年6月6日
    0106
  • Android安卓进阶技术分享之AGP工作原理

    1.基础准备 在分析源码之前,我想你应该对 Android 打包流程已经有基础的了解,至少了解了下图的打包过程: 否则你有可能不了解下文中的专业术语。 2.AGP源码的打开方式 看…

    Linux 2023年6月13日
    0117
  • 数字证书工作原理 图文并茂

    SSL证书和HTTPS的关系 HTTPS在HTTP的基础上加入了SSL加密协议,HTTP是明文传输,HTTPS是加密传输。 A quick definition:HTTPS sta…

    Linux 2023年6月6日
    0113
  • 新年伊始我的centos8没法更新了

    22年春节后centos8竟然没法更新了,提示 No URLs in mirrorlist如下: yum update Repository extras is listed mo…

    Linux 2023年6月13日
    0238
  • MySQL常见操作

    1.登录 mysql -uroot -p 2.如何查询数据库服务器中所有的 mysql> show databases; 3.如何选中一个数据库进行操作 mysql>u…

    Linux 2023年6月7日
    099
  • 在.NET中体验GraphQL

    前言 以前需要提供Web服务接口的时候,除了标准的WEBAPI形式,还考虑了OData、GraphQL等形式,虽然实现思路上有很大的区别,但对使用方来说,都是将查询的主动权让渡给了…

    Linux 2023年6月6日
    0132
  • How to show or hide views within a layout

    Android programming: mode selection and switching using a single activity, Show or hide vi…

    Linux 2023年6月13日
    076
  • .NET使用StackExchange.Redis

    csharp;gutter:true; using StackExchange.Redis; using System; using System.Collections.Gene…

    Linux 2023年5月28日
    095
  • TCP 和 UDP 协议简介

    一、TCP TCP(Transmission Control Protocol),传输控制协议,对”传输、发送、通信”进行”控制”的…

    Linux 2023年6月16日
    0167
  • 浅谈DDD中的聚合

    DDD分为战略部分跟战术部分,相信大家都认同DDD的核心在战略而非战术。而战略方面的核心我认为在业务建模,领域划分、统一语言等都在为业务建模服务。 为什么业务建模重要? 以前的开发…

    Linux 2023年6月8日
    098
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球