k8s在虚拟机环境部署

  • 部署前环境:
  • 系统centos7.6
  • 硬件
  • 虚拟机之间通信
  • 1.设置VMVare的默认网关(相当于我们设置路由器):
  • 2.设置主机ip地址:
  • 3.设置linux虚拟机上的网络配置
  • 环境
  • 1.连接xshell:
  • **2.所有节点执行**
  • **3.下载ifconfig**
  • **5.关闭防火墙**
  • **6.关闭selinux**
  • **7.关闭swap**
  • **8.同步时间**
  • 9.安装docker
  • 安装Docker源
  • 安装Docker
  • 配置Docker私有仓库
  • 查看docker 状态
  • 10.添加阿里云YUM的软件源
  • 安装及部署
  • 1.安装kubeadm,kubelet和kubectl
  • 检验
  • 验证是否正常运行


部署前环境:

#系统centos7.6
#硬件:2个CPU,2G内存
#虚拟机之间通信
#可以访问外网,禁用swap 防火墙,时间同步

系统centos7.6


硬件

最低要求 :2个CPU,2G内存

虚拟机之间通信

网络配置NAT(网络地址转换模式) VMnet8

1.设置VMVare的默认网关(相当于我们设置路由器):

编辑->虚拟网络编辑器->更改设置->选中VM8>点击NAT设置,

设置默认网关为192.168.61.2 掩码为 255.255.255.0。

虚拟机部署redis 虚拟机部署k8s_服务器


虚拟机部署redis 虚拟机部署k8s_docker_02


虚拟机部署redis 虚拟机部署k8s_服务器_03

2.设置主机ip地址:

点击VMnet8,设置ip地址为192.168.61.1,网关为192.168.61.2 掩码为 255.255.255.0。

DNS1=61.147.37.1 #设置主DNS

DNS2=8.8.8.8 #设置备DNS

虚拟机部署redis 虚拟机部署k8s_网络_04

右键点击属性

虚拟机部署redis 虚拟机部署k8s_docker_05

预设
本机 ip :192.168.61.1
192.168.61.3 k8s-master
192.168.61.4 k8s-node01
192.168.61.5 k8s-node02

3.设置linux虚拟机上的网络配置

将每个虚拟机环境同步–》

cd /etc/sysconfig/network-scripts/ //进入到网络适配器文件夹中
mv ifcfg-ens33 ifcfg-eth0 //名字改为ifcfg-eth0
vi ifcfg-eth0 //编辑文件

###vi#####
TYPE=Ethernet
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
#UUID(Universally Unique Identifier)是系统层面的全局唯一标识符号,Mac地址以及IP地址是网络层面的标识号;
#两台不同的Linux系统拥有相同的UUID并不影响系统的使用以及系统之间的通信;
#可以通过命令uuidgen ens33生成新的uuid
#和DEVICE一样也可以不写,DEVICE="ens33"可以不写,但一定不要写DEVICE=“eth0”
UUID=ae0965e7-22b9-45aa-8ec9-3f0a20a85d11
ONBOOT=yes #开启自动启用网络连接,这个一定要改
IPADDR=192.168.61.3 #设置IP地址
NETMASK=255.255.225.0 #设置子网掩码
GATEWAY=192.168.61.2 #设置网关
DNS1=61.147.37.1 #设置主DNS
DNS2=8.8.8.8 #设置备DNS
BOOTPROTO=static #启用静态IP地址 ,默认为dhcp
###vi#####

:wq! #保存退出

service network restart #重启网络,本文环境为centos7

ping www.baidu.com #测试网络是否正常

如果出现 failed to start lsb:bring up/down networking

ip addr #查看IP地址

( link/ether后面的为mac地址),然后在ifcfg-eth0中配置
vi /etc/sysconfig/network-scripts/ifcfg-eth0 #修改配置文件
#添加如下配置,这里要写上你的MAC地址
HWADDR=00:0c:bd:05:4e:cc

#更改主机名

hostnamectl set-hostname 名字

环境

单节点环境

1.连接xshell:

虚拟机部署redis 虚拟机部署k8s_linux_06

2.所有节点执行

vi /etc/hosts
192.168.61.3 k8s-master
192.168.61.4 k8s-node01
192.168.61.5 k8s-node02

3.下载ifconfig

yum provides ifconfig #查看哪个包提供了ifconfig命令,显示net-tools
yum install net-tools #安装提供ifconfig的包

5.关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

6.关闭selinux

vi /etc/selinux/config
替换 #SELINUX=enforcing 为 SELINUX=disabled
或者
sed -i ‘s/enforcing/disabled/’ /etc/selinux/config
setenforce 0

7.关闭swap

swapoff -a # 临时关闭
sed -ri ‘s/.swap./#&/’ /etc/fstab #永久关闭

8.同步时间

yum -y install ntp
systemctl start ntpd
systemctl enable ntpd

9.安装docker

安装Docker源

yum install -y wget && wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

安装Docker

yum -y install docker-ce-18.06.1.ce-3.el7

开启自启和启动

systemctl enable docker && systemctl start docker

查看版本

docker --version

配置Docker私有仓库

配置对私有仓库的可信任,并配置默认的镜像仓库为阿里云仓库

cd /etc/docker/
vi daemon.json #编辑json文件

{
“registry-mirrors”: [“https://vo5twm71.mirror.aliyuncs.com”],
“exec-opts”: [“native.cgroupdriver=systemd”],
“log-driver”: “json-file”,
“log-opts”: {
“max-size”: “100m”
},
“storage-driver”: “overlay2”,
“storage-opts”: [
“overlay2.override_kernel_check=true”
]
}

开启

systemctl daemon-reload
systemctl restart docker

查看docker 状态

docker info

Cgroup Driver: systemd #状态要是systemd

10.添加阿里云YUM的软件源

cat > /etc/yum.repos.d/kubernetes.repo << EOF

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

安装及部署

1.安装kubeadm,kubelet和kubectl

yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0

设置开机自启

systemctl enable kubelet

单节点环境
–master节点–
部署Kubernetes Master
192.168.61.3 Master执行 (注意修改为自己的Master地址)
安装网络插件flannel
百度云
链接: 下载flannel yaml配置文件 .
提取码:8888
把文件解压放在master节点执行

kubectl apply -f kube-flannel.yml

集群初始化

kubeadm init
–apiserver-advertise-address=192.168.61.3 ##(注意修改为自己的Master地址)
–image-repository registry.aliyuncs.com/google_containers
–kubernetes-version v1.15.0
–service-cidr=10.1.0.0/16
–pod-network-cidr=10.244.0.0/16

虚拟机部署redis 虚拟机部署k8s_虚拟机部署redis_07


这是执行初始化后的图片

第一个红框代表初始化成功
第二个代表后面该执行的脚本
第三个是子节点加入集群的脚本
里面包含token 及sha256

集群初始化后的脚本

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown 虚拟机部署redis 虚拟机部署k8s_网络_08(id -g) $HOME/.kube/config

集群初始化时成功后会有token及sha256需记住
在各节点执行
应当以自己master生成为准 我这cope个例子

kubeadm join 10.0.0.100:6443 --token pe3ge3.jsluu3wpjcks32ry
–discovery-token-ca-cert-hash sha256:fb0be4c2c3a15e8e7e856619d53f9f21fb582fd17b647fadb752d8d88ed8dd59

查k8s各节点

kubectl get node

检验

验证是否正常运行

在Kubernetes集群中创建一个pod nginx
创建nginx容器

kubectl create deployment nginx --image=nginx

暴露对外端口

kubectl expose deployment nginx --port=80 --type=NodePort

查看nginx是否运行成功并查看映射端口

kubectl get pod,svc

虚拟机部署redis 虚拟机部署k8s_网络_09

虚拟机部署redis 虚拟机部署k8s_docker_10

创建tomcat

kubectl run tomcat001 --image=tomcat:7.0.82-jre7 --port=8080

暴露对外端口

kubectl expose deployment tomcat001 --port=8080 --type=NodePort

查看是否运行成功并查看映射端口

kubectl get pod,svc

虚拟机部署redis 虚拟机部署k8s_服务器_11

虚拟机部署redis 虚拟机部署k8s_虚拟机部署redis_12

创建dashboard

kubectl apply -f kubernetes-dashboard.yaml

查看映射端口

kubectl get pods,svc -n kube-system

虚拟机部署redis 虚拟机部署k8s_docker_13

虚拟机部署redis 虚拟机部署k8s_服务器_14

浏览器不支持查看可切换火狐浏览器

虚拟机部署redis 虚拟机部署k8s_docker_15

查看需要令牌
创建service account并绑定默认cluster-admin管理员集群角色:【依次执行】

kubectl create serviceaccount dashboard-admin -n kube-system
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk ‘/dashboard-admin/{print $1}’)

会出现

虚拟机部署redis 虚拟机部署k8s_网络_16