关于k8s:93-K8S最小调度单位Pod

与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后就进行了,不倡议采纳

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理