目录
目录
一、虚拟机安装
1.1、软件安装
1.2、Vagrant生成Vagrantfile
1.3、Vagrant创建虚拟机
1.4、Vagrant连接虚拟机
二、Linux配置
2.1、开启root密码访问权限
2.2、禁用防火墙
2.3、关闭交换区
2.4、将桥接的IPv4流量传递到iptables的链,更精确统计流量
2.5、Host设置
2.6、时区设置
三、Docker安装
四、K8S安装
4.1、添加k8s的阿里云yum源
4.2、kubeadm,kubelet 和 kubectl 安装
4.3、部署k8s-master
4.3.1、制作镜像下载脚本
4.3.2、kubeadm安装
4.3.3、测试 kubectl
4.4、master 安装pod网络插件
4.5、加入node 节点
五、其他
一、虚拟机安装
1.1、软件安装
安装虚拟化系统Oracle virtualbox及管理工具Vagrant
1.2、Vagrant生成Vagrantfile
执行命令:vagrant init 生成Vagrantfile
1.3、Vagrant创建虚拟机
通过vagrantfile来创建三个虚拟机,分别为k8s-node1,k8s-node2和k8s-node3,内容如下
# 编辑Vagrantfile,替换为如下内容
Vagrant.configure("2") do |config|
(1..3).each do |i|
config.vm.define "k8s-node#{i}" do |node|
# 设置虚拟机Box
node.vm.box = "centos/7"
# 设置虚拟机主机名
node.vm.hostname = "k8s-node#{i}"
# 设置虚拟机IP
node.vm.network "private_network", ip: "192.168.56.#{99+i}", nemask:"255.255.255.0"
# 设置主机与虚拟机的共享目录
#node.vm.synced_flder "~/Docments/vagrant/share", "/home/vagrant/share"
# VirtaulBox相关配置
node.vm.provider "virtualbox" do |v|
# 设置虚拟机名称
v.name = "k8s-node#{i}"
v.memory = 1536
# 设置虚拟机CPU个数
v.cpus = 2
end
end
end
end
执行命令:vagrant up 创建虚拟机
1.4、Vagrant连接虚拟机
执行命令:vagrant ssh xxx
二、Linux配置
2.1、开启root密码访问权限
# 修改配置 PermitRootLogin yes PasswordAuthentication yes
sudo vi /etc/ssh/sshd_config
# 重启sshd服务
service sshd restart
2.2、禁用防火墙
sudo sed -i 's/enforcing/disabled/' /etc/selinux/config
# 关闭selinux防火墙
setenforce 0
2.3、关闭交换区
sudo sed -ri 's/.swap./#&/' /etc/fstab
2.4、将桥接的IPv4流量传递到iptables的链,更精确统计流量
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
# 应用 sysctl 参数而不重新启动
sudo sysctl --system
2.5、Host设置
vi /etc/hosts
10.0.2.15 k8s-node1
10.0.2.4 k8s-node2
10.0.2.5 k8s-node3
2.6、时区设置
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
三、Docker安装
Docker 安装与使用
四、K8S安装
4.1、添加k8s的阿里云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=1
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
4.2、kubeadm,kubelet 和 kubectl 安装
yum install -y kubelet-v1.25.2 kubeadm-v1.25.2 kubectl-v1.25.2
systemctl enable kubelet & systemctl start kubelet
#查看kubelet运行日志:
journalctl -xefu kubelet
4.3、部署k8s-master
4.3.1、制作镜像下载脚本
#!/bin/bash
images=(
kube-apiserver:v1.25.2
kube-proxy:v1.25.2
kube-controller-manager:v1.25.2
kube-scheduler:v1.25.2
coredns:1.6.5
etcd:3.4.3-0
pause:3.6
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
done
执行命令:chmod 700 master_images.sh 赋予文件执行权限,并执行脚本下载镜像
# 下载 pause镜像
ctr -n k8s.io i pull -k registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6
# 修改pause镜像的tag
ctr -n k8s.io i tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6 k8s.gcr.io/pause:3.6
4.3.2、kubeadm安装
- 配置文档
执行命令:kubeadm config print init-defaults 生成默认配置文档 kubeadm-config.yaml,修改
localAPIEndpoint:advertiseAddress
nodeRegistration:name
# 增加kubelet驱动设置为systemd
---
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
cgroupDriver: systemd
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
- system:bootstrappers:kubeadm:default-node-token
token: abcdef.0123456789abcdef
ttl: 24h0m0s
usages:
- signing
- authentication
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: 10.0.2.15
bindPort: 6443
nodeRegistration:
criSocket: unix:///var/run/containerd/containerd.sock
imagePullPolicy: IfNotPresent
name: k8s-node1
taints: null
---
apiServer:
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers #指定阿里云镜像仓库地址
kind: ClusterConfiguration
kubernetesVersion: 1.25.2
networking:
dnsDomain: cluster.local
serviceSubnet: 10.96.0.0/16
scheduler: {}
---
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
cgroupDriver: systemd
- 安装master
命令:sudo kubeadm init --config kubeadm-config.yaml --v=5 # 安装,输出详细日志,保存执行
- 按照上述执行结果,进行kuke配置
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
- k8s重置
执行命令:kubeadm reset -f
- kubelet 异常处理:containerd重启
rm /etc/containerd/config.toml sudo systemctl restart containerd
4.3.3、测试 kubectl
执行命令:kubectl get nodes 查看所有节点
4.4、master 安装pod网络插件
- flannel插件
kubectl apply -f kube-flannel.yml
# fnannel 安装缺失subnet.envwen文件
vi /run/flannel/subnet.env # 添加如下内容
FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.0.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true
#flannel网络插件时发现flannel一直处于CrashLoopBackOff状态
# kube-controller-manager.yaml增加参数
vi /etc/kubernetes/manifests/kube-controller-manager.yaml
--allocate-node-cidrs=true
--cluster-cidr=10.244.0.0/16
4.5、加入node 节点
- master操作
#查看节点
kubectl get pods
#定义node角色
kubectl label node k8s-node2 node-role.kubernetes.io/worker=worker
kubectl label node k8s-node3 node-role.kubernetes.io/worker=worker
# 查看所有空间的节点
kubectl get ns
kubectl get pods --all-namespaces
# 查看node节点日志
kubectl logs node-name -n namespace
五、其他
k8s.gcr.io/pause:3.6拉取超时处理
docker pull rancher/pause:3.6文章来源:https://www.toymoban.com/news/detail-774343.html
docker tag rancher/pause:3.6 k8s.gcr.io/pause:3.6文章来源地址https://www.toymoban.com/news/detail-774343.html
到了这里,关于K8S虚拟机安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!