Kubernetes学习笔记:遇到的一些问题及解决方法

在Kubernetes的pod中为alpine安装curl

问题起因是,作者在Kubernetes集群中启动了一个服务,想要通过kubectl exec进入到一个pod的容器中访问服务,但是发现没有curl命令(其实wget可以将就一下)。

kubectl exec进入容器

kubectl exec -it goweb-rs-vkwqb /bin/sh

添加apk国内镜像

$ cat /etc/apk/repositories
https://mirror.tuna.tsinghua.edu.cn/alpine/v3.11/main/
https://mirror.tuna.tsinghua.edu.cn/alpine/v3.11/community
http://mirrors.ustc.edu.cn/alpine/v3.11/main
http://mirrors.ustc.edu.cn/alpine/v3.11/community

然后安装

$ apk add --no-cache curl
fetch https://mirror.tuna.tsinghua.edu.cn/alpine/v3.11/main/x86_64/APKINDEX.tar.gz
WARNING: Ignoring https://mirror.tuna.tsinghua.edu.cn/alpine/v3.11/main/x86_64/APKINDEX.tar.gz: temporary error (try again later)
fetch https://mirror.tuna.tsinghua.edu.cn/alpine/v3.11/community/x86_64/APKINDEX.tar.gz
WARNING: Ignoring https://mirror.tuna.tsinghua.edu.cn/alpine/v3.11/community/x86_64/APKINDEX.tar.gz: temporary error (try again later)

不太行,ping一下mirror.tuna.tsinghua.edu.cn,不通。在宿主机ping了一下,通了,并且拿到了ip。再回到容器中ping了ip,通的,说明dns解析有问题。

打开/etc/resolv.conf,加入一行nameserver 114.114.114.114,然后再试一次

$ apk update --no-cache
$ apk add --no-cache curl

大功告成

$ curl --version
curl 7.67.0 (x86_64-alpine-linux-musl) libcurl/7.67.0 OpenSSL/1.1.1g zlib/1.2.11 nghttp2/1.40.0
Release-Date: 2019-11-06
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS HTTP2 HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL TLS-SRP UnixSockets

另一个方法是从官网下载源码然后编译安装。

猜你喜欢

转载自www.cnblogs.com/flhs/p/12936264.html