Win10下从零搭建Linux+Ansible+K8S 学习环境笔记(1*Master/controller+3*Node)

2023-03-02 19:11:27 浏览数 (1)

我所渴求的,無非是將心中脫穎語出的本性付諸生活,為何竟如此艱難呢 ------《彷徨少年時》


一,Linux 系统安装

这里默认小伙伴已经安装了Vmware Workstation(VMware-workstation-full-15.5.6-16341506.exe),已经准备了linux系统 安装光盘(CentOS-7-x86_64-DVD-1810.iso)。括号内是我用的版本,我们的方式:

先安装一个Node节点机器,然后通过克隆的方式得到剩余的两个Node机器和一个Master机器

1. 系统安装

&&&&&&&&&&&&&&&&&&安装步骤&&&&&&&&&&&&&&&&&&

给虚拟机起一个名称,并指定虚拟机存放的位置。

内存设置这里要结合自己机器的情况,如果8G内存,建议为2G,如果16G,建议4G,如果32G,建议8G

将存放在系统中的光盘镜像放入光驱中。【通过”浏览”找到即可】

如果显示内存太大了,开不了机,可以适当减小内存,

点击屏幕,光标进入到系统,然后上下键选择第一个。

建议初学者选择“简体中文(中国)”,单击“继续”。

检查“安装信息摘要界面”,确保所有带叹号的部分都已经完成,然后单击右下方的“开始安装”按钮,将会执行正式安装。

若密码太简单需要按两次“完成”按钮!

创建用户。(用户名字和密码自定义),填写完成后,单击两次“完成”。

这很需要时间,可以干点别的事…,安装完成之后,会有 重启 按钮,直接重启即可

启动系统,这个需要一些时间,耐心等待

未列出以root用户登录,然后是一些引导页,直接下一步即可

嗯,这里改一下,命令提示符。弄的好看一点想学习,直接输入:PS1="[33[1;32m]┌──[[33[1;34m]u@H[33[1;32m]]-[[33[0;1m]w[33[1;32m]] n[33[1;32m]└─[33[1;34m]$[33[0m] "或者写到.baserch

2. 配置网络

&&&&&&&&&&&&&&&&&&配置网络步骤&&&&&&&&&&&&&&&&&&

桥接模式下,要自己选择桥接到哪个网卡(实际联网用的网卡),然后确认

配置网卡为DHCP模式(自动分配IP地址):执行方式见表尾

nmcli connection modify 'ens33' ipv4.method auto connection.autoconnect yes #将网卡改为DHCP模式(动态分配IP),nmcli connection up 'ens33'

配置网卡为DHCP模式(自动分配IP地址)

代码语言:javascript复制

┌──[root@localhost.localdomain]-[~] 
└─$ nmcli connection modify 'ens33' ipv4.method auto   connection.autoconnect yes
┌──[root@localhost.localdomain]-[~] 
└─$ nmcli connection up 'ens33'
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
┌──[root@localhost.localdomain]-[~] 
└─$ ifconfig | head -2 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.7  netmask 255.255.255.0  broadcast 192.168.1.255
┌──[root@localhost.localdomain]-[~] 
└─$
代码语言:javascript复制
┌──[root@192.168.1.7]-[~] 
└─$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.7  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::8899:b0c7:4b50:73e0  prefixlen 64  scopeid 0x20<link>
        inet6 240e:319:707:b800:2929:3ab2:f378:715a  prefixlen 64  scopeid 0x0<global>
        ether 00:0c:29:b6:a6:52  txqueuelen 1000  (Ethernet)
        RX packets 535119  bytes 797946990 (760.9 MiB)
        RX errors 0  dropped 96  overruns 0  frame 0
        TX packets 59958  bytes 4119314 (3.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 616  bytes 53248 (52.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 616  bytes 53248 (52.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:2e:66:6d  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

┌──[root@192.168.1.7]-[~] 
└─$

3. 机器克隆

&&&&&&&&&&&&&&&&&&机器克隆步骤&&&&&&&&&&&&&&&&&&

关闭要克隆的虚拟机

链接克隆和完整克隆的区别:

创建链接克隆 #克隆的虚拟机占用磁盘空间很少,但是被克隆的虚拟机必须能够正常使用,否则无法正常使用;

创建完整克隆 #新克隆的虚拟机跟被克隆的虚拟机之间没有关联,被克隆的虚拟机删除也不影响新克隆出来的虚拟机的使用

测试一下,可以访问外网(39.97.241是我的阿里云公网IP), 也可以和物理机互通,同时也可以和node互通

我们以相同的方式,克隆剩余的一个node节点机器,和一个Master节点机。

我们以相同的方式,克隆剩余的一个node节点机器,和一个Master节点机。这里不做展示

克隆剩余的,如果启动时内存不够,需要关闭虚拟机调整相应的内存

4.管理控制节点到计算节点DNS配置

Master节点DNS配置

Master节点配置DNS,可用通过主机名访问,为方便的话,可以修改每个节点机器的 主机名 /etc/hosts下修改。

代码语言:javascript复制
┌──[root@192.168.1.10]-[~] 
└─$ vim /etc/hosts
┌──[root@192.168.1.10]-[~] 
└─$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.7  node0
192.168.1.9  node1
192.168.1.11 node2
 
┌──[root@192.168.1.10]-[~] 
└─$

5.管理控制节点到计算节点SSH免密配置

Master节点配置SSH免密登录

ssh-keygen生成密匙,全部回车

SSH 免密配置,使用ssh-copy-id传递密匙

免密测试,如果为了方便,这里,Node1的主机名没有修改。所以显示为IP地址

ssh-keygen生成密匙,全部回车

代码语言:javascript复制
┌──[root@192.168.1.10]-[~] 
└─$ ssh
usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
           [-D [bind_address:]port] [-E log_file] [-e escape_char]
           [-F configfile] [-I pkcs11] [-i identity_file]
           [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec]
           [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address]
           [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
           [user@]hostname [command]
┌──[root@192.168.1.10]-[~] 
└─$ ls -ls ~/.ssh/
ls: 无法访问/root/.ssh/: 没有那个文件或目录
┌──[root@192.168.1.10]-[~] 
└─$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:qHboVj/WfMTYCDFDZ5ISf3wEcmfsz0EXJH19U6SnxbY root@node0
The key's randomart image is:
 ---[RSA 2048]---- 
|      .o .=o .o *|
|      ..=B  . o==|
|       .. o.....O|
|       ... .. .=.|
|      . S. = o.E |
|     o.   o   o  |
|     ... o .     |
|   o..    o .    |
|   ..  . . .     |
 ----[SHA256]----- 

SSH 免密配置,使用ssh-copy-id传递密匙

代码语言:javascript复制
ssh-copy-id root@node0
ssh-copy-id root@node1
ssh-copy-id root@node2

免密测试

代码语言:javascript复制
ssh root@node0
ssh root@node1
ssh root@node2

嗯,时间原因,先搞到这里,关于Ansible和K8s,之后有时间整理在更新下

二,Ansible安装配置

三,Docker、K8s相关包安装配置

0 人点赞