第一章 内网服务器ubuntu19.10 安装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
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页