与 container 的关系
一个 Pod 能够蕴含一个或多个 container
Pod 治理
新建一个 pod_nginx.yml 文件
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
创立
# 如果装置失败或者挂起,可通过 kubectl describe pods 查看错误信息。kubectl create -f pod_nginx.yml
kubectl get pods
NAME | READY | STATUS | RESTARTS | AGE |
---|---|---|---|---|
nginx | 1/1 | Running | 0 | 2h |
过后装置过程中遇到的错误信息如下:
Warning FailedCreatePodSandBox 11s kubelet, minikube Failed create pod sandbox: rpc error: code = Unknown desc = failed pulling image "k8s.gcr.io/pause-amd64:3.1": Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
尝试着间接在宿主机的 iterm2 上执行如下语句
docker pull k8s.gcr.io/pause-amd64:3.1
的确失败了,因而狐疑 k8s.gcr.io 被墙了。
在 Docker for Mac 的 Preferences – Proxies – Manual proxy configuration 中设置如下,而后 Apply & Restart
即可发现宿主机能够胜利 pull image 了
http:127.0.0.1:1087
https:127.0.0.1:1087
Bypass:localhost,127.0.0.1,docker-registry.somecorporation.com
但上述的错误信息实际上不是在宿主机上 pull image 导致的,而是在 minikube 这个虚拟机上 pull image 导致的。
因而须要将 ssr 的 listen address 从 127.0.0.1:1087
改成 0.0.0.0:1087
而后minikube ssh
,依照 docker 的 proxy 文档 https://docs.docker.com/confi… 在 minikube 虚拟机上进行如下操作
sudo mkdir -p /etc/systemd/system/docker.service.d
touch /etc/systemd/system/docker.service.d/http-proxy.conf
sudo vi /etc/systemd/system/docker.service.d/http-proxy.conf
文件内容如下
[Service]
Environment="HTTP_PROXY=http://192.168.88.66:1087" "HTTPS_PROXY=http://192.168.88.66:1087" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"
而后
sudo systemctl daemon-reload
sudo systemctl restart docker
验证是否失效
systemctl show --property=Environment docker
Environment=DOCKER_RAMDISK=yes HTTP_PROXY=http://192.168.88.66:1087 HTTPS_PROXY=http://192.168.88.66:1087 NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com
退出 minikube 虚拟机,而后从新执行如下即可
kubectl delete -f pod_nginx.yml
kubectl create -f pod_nginx.yml
minikube stop 之后,上述的 proxy 配置信息就失落了,须要重新配置,想哭。。。
删除
kubectl delete -f pod_nginx.yml
查看 pods 列表
kubectl get pods -o wide
NAME | READY | STATUS | RESTARTS | AGE | IP | NODE |
---|---|---|---|---|---|---|
nginx | 1/1 | Running | 0 | 6h | 172.17.0.2 | minikube |
进入 Pod
kubectl exec -it nginx sh
查看 Pod 详情
kubectl describe pod nginx
Pod 端口映射
kubectl port-forward nginx 8080:80
这种端口映射形式在该行 shell 程序 ctrl+c
后就进行了,不倡议采纳