grep -E '(vmx|svm)' /proc/cpuinfo
yum install qemu virt kvm -y
Question:
Solution:已安装的跳过
yum install qemu virt kvm -y --skip-broken
systemctl start libvirtd
systemctl enable libvirtd
virsh list
yum install -y bridge-utils
#配置桥接模式
cd /etc/sysconfig/network-scripts
cp ifcfg-em2 ifcfg-br0
[root@localhost network-scripts]# vim ifcfg-em2
TYPE=Ethernet
BRIDGE=br0
NAME=em2
UUID=74c8085f-4c0d-4743-b0a0-70e51e3eb877
DEVICE=em2
ONBOOT=yes
#注意IPADDR 要改为自己的
[root@localhost network-scripts]# vim ifcfg-br0
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=17216103
PREFIX=24
GATEWAY=1721610254
DNS1=114114114114
systemctl restart network
#验证
brctl show
cd /home/kvm
#创建master虚拟机的存储盘 104
qemu-img create -f qcow2 -o cluster_size=2M k8s-master01qcow2 200G
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name k8s-master01qcow2 --memory 8192 --vcpus 4 --disk /home/kvm/k8s-master01qcow2,format=qcow2 --cdrom /home/kvm/CentOS-7-x86_64-DVD-2009iso --network bridge=br0 --graphics vnc,listen=0000 --noautoconsole
#创建worker虚拟机的存储盘 105
qemu-img create -f qcow2 -o cluster_size=2M k8s-worker01qcow2 200G
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name k8s-worker01qcow2 --memory 8192 --vcpus 4 --disk /home/kvm/k8s-worker01qcow2,format=qcow2 --cdrom /home/kvm/CentOS-7-x86_64-DVD-2009iso --network bridge=br0 --graphics vnc,listen=0000 --noautoconsole
#创建worker虚拟机的存储盘 103
qemu-img create -f qcow2 -o cluster_size=2M k8s-worker02qcow2 200G
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name k8s-worker02qcow2 --memory 32768 --vcpus 32 --disk /home/kvm/k8s-worker02qcow2,format=qcow2 --cdrom /home/kvm/CentOS-7-x86_64-DVD-2009iso --network bridge=br0 --graphics vnc,listen=0000 --noautoconsole
netstat -ntlp | grep 5900
virsh list --all
virsh shutdown k8s-master01qcow2
virsh start k8s-master01qcow2
ssh 172161050 root@starQuest2022
Question:系统启动卡住
Solution:
virsh destroy k8s-master01qcow2
virsh undefine k8s-master01qcow2
Question:更改桥接模式失败引发的问题
Solution:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=c510f2f9-9820-45e8-9c70-65674bd35258
DEVICE=eth0
ONBOOT=yes
IPADDR=172161050
PREFIX=24
GATEWAY=1721610254
DNS1=114114114114
systemctl restart network
Question:
Solution:
vi /root/ssh/known_hosts 删除有问题IP对应行
#设置hostname
hostnamectl set-hostname k8s-master01
hostnamectl set-hostname k8s-worker01
hostnamectl set-hostname k8s-worker02
yum update
yum install wget
yum install vim
rpm --import >容器编排就是有关管理容器生命周期的全部工作,特别是在大型动态环境中。 软件团队使用容器编排来控制和自动化许多任务:
•运行中的Kubernetes集群包含节点代理(kubelet)和集群控制平面(AKA主节点),集群状态由分布式存储系统(etcd)支持
除了核心组件,还有一些推荐的插件,其中有的已经成为CNCF中的托管项目:
Controller Manager 用于实现 Kubernetes 集群故障检测和恢复的自动化工作。Controller Manager 主要负责执行以下各种控制器:
Kubelet 「节点上的 Pod 管家」
Proxy「负载均衡、路由转发」
Kubectl 「集群管理命令行工具集」
客户端访问 ——> service1 ——> Pod1 ——> service2 ——>Pod2
所有的Pod之前的访问都是由其service来代理的,当Pod间知道相应的Pod的IP后,就会直接进行通信,可以理解为DNS的作用。
• Pod - 一组容器
• 标签 - 用于识别Pods的标签
• Kubelet - 容器代理
• kube-proxy - Pod的负载平衡器
• etcd - 元数据服务
• cAdvisor - 容器顾问提供者资源使用/性能统计
• Replication Controller - 管理Pod的复制
• Scheduler- 调度工作节点中的Pod
• API Server - Kubernetes API服务器
管理Pod | 复制集
处理复制和推出 | 部署
提供自我修复功能 | 守护程序集
使用个Pod模板制作真实的Pods | 工作
需要的前置知识点:docker、k8s的一些基本概念,下面这个可能对你有帮助。
>
如果在本地搭建,我们可以使用haproxy+keepalived方式轻松实现k8s中的负载均衡,但是阿里的ecs不能使用keepalived,所以我们被迫只能使用阿里的 slb了。
既然keepalived的方式不能使用,那我们就使用阿里的slb进行负载均衡呗,由于该负载均衡不需要被外部访问,只提供对k8s集群节点之间的访问,所以我们就使用私网的slb。
[上传失败(image-b02d7-1604545387128)]
我们保证该slb和k8s集群节点的node属于同一个局域网内,具体配置如下
第一步就是监听该slb的6443端口,该端口后端的服务器组分别是3台ecs的6443端口(apiserver服务)。接着我们可以 在master1节点 上执行如下命令
由于后端服务器组的 apiserver 都尚未运行,预期会出现一个连接拒绝错误。然而超时意味着负载均衡器不能和控制平面节点通信。 如果发生超时,请重新配置负载均衡器与控制平面节点进行通信。
我们在master1节点上创建kubeadm-configyaml文件,用于初始化控制平面节点,如下。
接着我们在master1节点上执行如下命令初始化
最后结果如下
看上面的日志好像是kubelet的问题。我们先确认kubelet是否运行,发现处于running状态。
接着查看kubelet的日志
发现一个奇怪的问题,>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)