第一章 内网服务器ubuntu19.10 安装kvm虚拟机来搭建k8s集群
一、环境搭建宿主机:系统版本:Ubuntu 19.10查看命令:cat /etc/issue内存:128G硬盘:3.8T网卡1_ip:192.168.90.201网卡2_ip:192.168.90.209kvm虚拟机:系统版本:CentOS 7.2内存:16G硬盘:100Gvm1_ip:192.168.90.215...
安装kvm虚拟机来搭建k8s集群
一、环境搭建
宿主机:
系统版本:Ubuntu 19.10
查看命令:cat /etc/issue
内存:128G
硬盘:3.8T
网卡1_ip:192.168.90.201
网卡2_ip:192.168.90.209
kvm虚拟机:
系统版本:CentOS 7.2
内存:16G
硬盘:100G
vm1_ip:192.168.90.215
vm2_ip:192.168.90.216
vm3_ip: 192.168.90.217
1、ubuntu网络配置
ubuntu从版本18后网络配置弃用,用的netplan来管理网络 配置文件在/etc/netplan/50-cloud-init.yaml
编写也非常简单
vim /etc/netplan/50-cloud-init.yaml
network:
version: 2 #版本
renderer: networkd
ethernets:
eno1: #配置的网卡名称
dhcp4: no
eno2: #配置的网卡名称
dhcp4: no
eno3: #配置的网卡名称
dhcp4: no #是否开启dhcp
addresses: [192.168.90.201/24] #静态ip地址
gateway4: 192.168.90.1 #网关
bonds: #绑定
bond4kvm:
dhcp4: no
interfaces:
- eno1
- eno2
parameters:
mode: balance-alb
bridges: #桥接网络
bridge4kvm:
dhcp4: no
addresses: [192.168.90.209/24]
gateway4: 192.168.90.1
interfaces:
- bond4kvm
完成配置文件编写我这里只写了两个静态ip一个桥接的当作kvm的网络
#检查语法
netplan generate
#没问题直接重启网卡
netplan apply
2、kvm安装
ubuntu查看安装包
apt show "*kvm*" | grep Package #可正则匹配
dpkg -L Package
apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
完成后测试
virsh list --all
我这个是以前安装的如中途有问题可自行查询如何安装kvm
我kvm管理客户端使用的wok和kimchi所以不用安装manager
安装wok及kimchi
#主配置文件
/etc/wok/wok.conf
#页面配置文件
/etc/nginx/conf.d/wok.conf
#只是简单应用,这里使用默认配置即可
启动
systemctl daemon-reload
systemctl start wokd
systemctl enable wokd
完成启动后可通过ip加端口访问
3、centos虚拟机安装
命令行进行安装
指定硬盘内存网络及iso镜像等关键信息
其他可自行百度了解
virt-install --name=vm-ops01-centos --disk path=/var/storages/shared/kvm-images/vm-ops01-centos.qcow2,device=disk,size=100 --vcpus sockets=4,cores=4,threads=4 --ram=16000 --location=/var/storages/shared/kvm-isos/CentOS-7-x86_64-Minimal-1511.iso --network bridge=bridge4kvm --os-type=linux --os-variant=rhel7.0 --vnc --noautoconsole
登录wok界面打开安装好的服务器选中打开控制台进行安装
等待安装完成后重启就好了,镜像我下载的是最小化所以安装会很快
用命令行启动
启动之后通过wok进入控制台
在进入控制台之前调整下网卡避免后面可能遇到的问题
进入控制台我们需要配置网卡信息配置成静态ip
配置完了重启network
/etc/init.d/network restart
这里需要注意 如果有eth0的配置文件需要删掉不然重启会报错
重启后ping下baidu.com
可以通到这里就完成虚拟机的安装
因为这样的安装方式太麻烦每次需要在页面进行安装
所以我研究了下通过ks文件来自动化安装
我们可以拷贝一份刚刚安装好的这台服务器根目录下的
anaconda-ks.cfg文件
然后进行修改,看了很多文档我也是改到勉强能用
一些系统配置信息也可以加入ks文件中,不过我在命令行定义了所以也没关系
# install
install
# password
rootpw --iscrypted $6$aWubCB7hBT5hB9rx$BOnBdsZfoc5sFuR/kCs5HkKZ6mZLaMQrBFaGg8b.vwvOpvvodmNt7BbiXBgH0r1ritHceqWM2T8by4lLLy0IJ0
authconfig --enableshadow --passalgo=sha512
firewall --service=ssh
text
firstboot --disable
keyboard us
lang en_US.UTF-8
selinux --disabled
timezone Aisa/Shanghai
# 配置网络
network --onboot yes --device ens3 --bootproto static --ip 192.168.90.213 --netmask 255.255.255.0 --gateway=192.168.90.1 --nameserver=1.1.1.1,8.8.8.8 --hostname centos7-ops2 --noipv6
#network --bootproto=dhcp --device=eth0 --onboot=on --ipv6=auto
# 指定引导分区
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=vda
autopart --type=plain
clearpart --all --initlabel --drives=vda
%packages
@core
kexec-tools
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
ks.cfg文件安装的
virt-install --name=vm-ops02-centos --disk path=/var/storages/shared/kvm-images/vm-ops02-centos.qcow2,device=disk,size=100 --vcpus sockets=4,cores=4,threads=4 --ram=16000 --location=/var/storages/shared/kvm-isos/CentOS-7-x86_64-Minimal-1511.iso --network bridge=bridge4kvm --os-type=linux --os-variant=rhel7.0 --initrd-inject=/root/ks.cfg --extra-args="ks=file:/ks.cfg" --vnc --noautoconsole
执行完成后可在页面控制台查看自动安装过程
安装完成后在命令行启动
启动完成可直接ssh连接过去
root密码记住是页面安装设定的root密码加密在了ks文件里面,想要修改可自己百度下密码的算法 —手动狗头
按照此方法我们也完成搭建ops03虚拟机
二、k8s搭建
1.配置主节点
下载yum工具yum-utils 才能使用yum-config-manager
yum install yum-utils-1.1.31-53.el7.noarch
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
清理下本地缓存
yum makecache fast
安装epel源
yum install epel-release -y
#下载docker及k8s相关组件
yum install -y kubernetes etcd docker flannel
修改etcd集群配置
sed -i "s/localhost:2379/192.168.90.215:2379/g" /etc/etcd/etcd.conf
sed -i "s/localhost:2380/192.168.90.215:2380/g" /etc/etcd/etcd.conf
sed -i "s/192.168.90.215:2379/192.168.90.215:2379,http:\/\/127.0.0.1:2379/g" /etc/etcd/etcd.conf
修改api服务配置
sed -i "s/127.0.0.1:2379/192.168.90.215:2379/g" /etc/kubernetes/apiserver
sed -i "s/--insecure-bind-address=127.0.0.1/--insecure-bind-address=0.0.0.0/g" /etc/kubernetes/apiserver
sed -i "s/--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota/--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota/g" /etc/kubernetes/apiserver
修改客户端配置
sed -i "s/--hostname-override=127.0.0.1/--hostname-override=192.168.90.215/g" /etc/kubernetes/kubelet
sed -i "s/127.0.0.1:8080/192.168.90.215:8080/g" /etc/kubernetes/kubelet
sed -i "s/--address=127.0.0.1/--address=0.0.0.0/g" /etc/kubernetes/kubelet
修改主配置
sed -i "s/127.0.0.1:8080/192.168.90.215:8080/g" /etc/kubernetes/config
修改网络插件配置
sed -i "s/127.0.0.1:2379/192.168.90.215:2379/g" /etc/sysconfig/flanneld
修改host文件
vi /etc/hosts
10.135.163.237 k8s_master
启动etcd设为开机启动
systemctl enable etcd.service
systemctl start etcd.service
设置网络段
etcdctl mk //atomic.io/network/config '{"Network":"172.17.0.0/16"}'
启动docker
service docker start
cat /etc/sysconfig/docker
没有启动新的内核,修改的docker配置文件。将配置文件的“–selinux-enabled”改成“–selinux-enabled=false”,然后再重启docker。
批量重启服务
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler kube-proxy kubelet docker flanneld ; do systemctl restart $SERVICES; systemctl enable $SERVICES; systemctl status $SERVICES; done;
编写yaml测试并启动测试
vim a.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 2
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: registry.alauda.cn/yubang/paas_base_test
ports:
- containerPort: 80
command: ["/bin/bash", "/var/start.sh"]
resources:
limits:
cpu: 0.5
memory: 64Mi
vim b.yaml
apiVersion: v1
kind: Service
metadata:
name: my-app-svc
labels:
app: my-app
spec:
ports:
- port: 80
targetPort: 80
nodePort: 30964
type: NodePort
selector:
app: my-app
创建deploy
kubectl create -f a.yaml --validate
kubectl create -f b.yaml --validate
查看pod
kubectl get pods
删除pod
kubectl delete -f a.yaml
kubectl delete -f b.yaml
2.添加子节点
yum install yum-utils-1.1.31-53.el7.noarch
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker
yum install epel-release -y
yum install -y kubernetes docker flannel
sed -i "s/--hostname-override=127.0.0.1/--hostname-override=192.168.90.216/g" /etc/kubernetes/kubelet
sed -i "s/127.0.0.1:8080/192.168.90.215:8080/g" /etc/kubernetes/kubelet
sed -i "s/--address=127.0.0.1/--address=0.0.0.0/g" /etc/kubernetes/kubelet
sed -i "s/127.0.0.1:8080/192.168.90.215:8080/g" /etc/kubernetes/config
sed -i "s/127.0.0.1:2379/192.168.90.215:2379/g" /etc/sysconfig/flanneld
sed -i "s/--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota/--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota/g" /etc/kubernetes/apiserver
更多推荐
所有评论(0)