Alberthua Blog
Alberthua 从事 Linux 🐧 与云计算领域至今,目前就职于某国际开源系统公司担任 Instructor
Alberthua 的博客中将记录技术与编程语言的学习总结、日常工作中的避坑提示、工作生活中的碎碎念等
欢迎来访的朋友们互换友链,可在评论区留下站点地址
Alberthua Blog
Alberthua 从事 Linux 🐧 与云计算领域至今,目前就职于某国际开源系统公司担任 Instructor
Alberthua 的博客中将记录技术与编程语言的学习总结、日常工作中的避坑提示、工作生活中的碎碎念等
欢迎来访的朋友们互换友链,可在评论区留下站点地址
您好博主,我想请教一下 kubevirt 为什么无法访问外网,我已经设置了使用Pod网络,同时如何通过xshell连接
[root@master ~]# virtctl console fedora
Successfully connected to fedora console. The escape sequence is ^]
fedora login: fedora
Password:
Last login: Sat Sep 7 20:19:15 on ttyS0
[fedora@fedora ~]$ ping baidu.com
ping: baidu.com: Name or service not known
[fedora@fedora ~]$ ping 110.242.68.66
PING 110.242.68.66 (110.242.68.66) 56(84) bytes of data.
— 110.242.68.66 ping statistics —
211 packets transmitted, 0 received, 100% packet loss, time 215041ms
[fedora@fedora ~]$ cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
[root@master ~]# virtctl expose vmi fedora –port=22 –name=fedora-ssh –type=NodePort
service creation failed for k8s >= 1.20: services “fedora-ssh” already exists
[root@master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
cirros-ssh NodePort 10.99.20.114 22:31731/TCP 54m
fedora-ssh NodePort 10.100.30.174 22:31161/TCP 11m
[root@master ~]# cat kubevirt.yaml
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: fedora
spec:
runStrategy: Manual
template:
metadata:
labels:
kubevirt.io/vm: fedora
spec:
hostname: fedora
domain:
resources:
requests:
memory: 2Gi
devices:
disks:
– name: containerdisk
disk:
bus: virtio
– name: cloudinitdisk
disk:
bus: virtio
rng: {}
interfaces:
– name: default
masquerade: {}
ports:
– name: ssh
port: 22
networks:
– name: default
pod: {}
volumes:
– name: containerdisk
containerDisk:
image: 192.168.100.3/library/fedora-virt:v1.0
imagePullPolicy: IfNotPresent
– name: cloudinitdisk # Name of the cloud-init disk
cloudInitNoCloud: # 使用CloudInitNoCloud配置用户数据
userData: |-
#cloud-config
password: fedora # 用户名: fedora 密码: fedora
chpasswd: { expire: False } # 密码过期
ssh_pwauth: True
write_files:
– path: /etc/resolv.conf
permissions: “0644”
content: |
nameserver 8.8.8.8
nameserver 8.8.4.4
为什么无法访问外网?
看起来是 Kubernetes 网络的问题,可以单独起一个常规 Pod 然后测试能够访问外部网络
同时如何通过xshell连接?
使用类型是 NodePort 或者 LoadBalancer 类型的 Service,或者使用 Multus
我取消了istio的注入他是可以正常访问的,目前没有解决使用istio的策略成功访问
非常感谢您的回复,这个问题我好像发现是什么问题了,好像是因为我部署了 Istio,Istio 做了流量管理策略阻碍
可以出一期如何制作kubevirt镜像吗?
制作 Kubevirt 镜像是很容易的,首先可以直接使用 qcow2 raw 通过 CDI 导入到 PV 中,如果是 Container image 这种的话,通过编写 Dockerfile 构建一个只包含 /disk 的目录,然后将 qcow2 镜像拷贝到 /disk 目录下就可以了,有空的时候出一期。
我制作了不知道为什么不能使用,https://cloud.tencent.com/developer/article/1628184 根据这个制作的并且也编写 Dockerfile 构建一个只包含 /disk 的目录,创建vmi都是正常的但是就是没有安装界面卡死在virtctl console 界面
问题还是出现在构建自定义虚拟机镜像的方式上,建议使用 libguestfs virt-customize 这类的工具,而不是直接启动虚拟机然后通过手动人工的方式进行修改。
此外应使用发行版提供的 qcow2 镜像,在此基础之上进行自定义而不是自己安装一个VM
如何排除是否是构建的容器镜像问题?
只需直接将 qcow2 导入到 PVC,看是否正常启动即可
感谢回复,如果方便的话可以加个联系方式吗