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。
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
右键点击属性
预设
本机 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:
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
这是执行初始化后的图片
第一个红框代表初始化成功
第二个代表后面该执行的脚本
第三个是子节点加入集群的脚本
里面包含token 及sha256
集群初始化后的脚本
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown (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
创建tomcat
kubectl run tomcat001 --image=tomcat:7.0.82-jre7 --port=8080
暴露对外端口
kubectl expose deployment tomcat001 --port=8080 --type=NodePort
查看是否运行成功并查看映射端口
kubectl get pod,svc
创建dashboard
kubectl apply -f kubernetes-dashboard.yaml
查看映射端口
kubectl get pods,svc -n kube-system
浏览器不支持查看可切换火狐浏览器
查看需要令牌
创建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}’)
会出现