如果您对Kubernetes/Docker的HTTP(S)负载平衡感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于Kubernetes/Docker的HTTP(S)负载平衡的
如果您对Kubernetes / Docker的HTTP(S)负载平衡感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于Kubernetes / Docker的HTTP(S)负载平衡的详细内容,我们还将为您解答docker实现负载均衡的相关问题,并且为您提供关于docker for mac 安装 kubernetes、kubernetes dashboard、Docker Kubernetes hostPort 代理转发、docker – Kubectl:Kubernetes与minikube超时、docker – kubernetes volume hostPath的有价值信息。
本文目录一览:- Kubernetes / Docker的HTTP(S)负载平衡(docker实现负载均衡)
- docker for mac 安装 kubernetes、kubernetes dashboard
- Docker Kubernetes hostPort 代理转发
- docker – Kubectl:Kubernetes与minikube超时
- docker – kubernetes volume hostPath
Kubernetes / Docker的HTTP(S)负载平衡(docker实现负载均衡)
我正在Google Cloud kubernetes基础结构中通过Nginx在自签名证书后面运行restfull服务.
Kubernetes服务加载器公开443并路由那些容器的流量.除了要求内部客户忽略自签名证书警告之外,其他所有功能都按预期工作!
现在是时候转移到CA cert了,据我所知,这是唯一的选择,是https loader,但我无法弄清楚如何将流量重新路由到Service loader或作为Service loader(http loader)直接路由到Pod.
任何帮助
IP: 130.211.0.0/22
tcp:30000-32767
>创建NodePort类型服务:
apiVersion: v1
kind: Service
Metadata:
name: yourservicenodeport
labels:
name: your-service-node-port
spec:
type: NodePort
ports:
- port: 80
nodePort: 30001
selector:
name: yourpods
>创建健康检查.
对于这种情况下的节点端口:30001
>创建入口服务:
apiVersion: extensions/v1beta1
kind: Ingress
Metadata:
name: youTheking-ingress-service
spec:
backend:
serviceName: yourservice
servicePort: 80
>等待几分钟,请耐心等待.
>更改http负载均衡器上的运行状况检查.
一种.转到“网络”选项卡上的“负载平衡”.
b.点击高级菜单.
C.转到后端服务并编辑.
d.更新运行状况检查选项,并使用为节点端口服务创建的选项.
>对要确认为健康的实例组重复步骤5.
>需要SSL,请返回到负载均衡器,进行编辑,单击“前端配置”,然后添加带有证书的https.
>您已准备好开始滚动.
docker for mac 安装 kubernetes、kubernetes dashboard
-
安装参考地址(按照此文档,安装成功):https://yq.aliyun.com/articles/508460
-
官方说明:https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/
-
常用命令 kubectl 命令:
kubectl get namespaces
kubectl get pods --namespace kube-system
kubectl get deployments --namespace kube-system
kubectl get services --namespace kube-system
kubectl -n kube-system edit service kubernetes-dashboard
kubectl get pods
kubectl get deployments
kubectl get services
kubectl config view
获取令牌,然后登陆 kubernetes dashboard
➜ ~ kubectl get secrets
NAME TYPE DATA AGE
default-token-6ljm8 kubernetes.io/service-account-token 3 6h
➜ ~ kubectl describe secrets default-token-6ljm8
Name: default-token-6ljm8
Namespace: default
Labels: <none>
Annotations: kubernetes.io/service-account.name=default
kubernetes.io/service-account.uid=77d014c2-0804-11e9-acd8-025000000001
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1025 bytes
namespace: 7 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImRlZmF1bHQtdG9rZW4tNmxqbTgiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGVmYXVsdCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6Ijc3ZDAxNGMyLTA4MDQtMTFlOS1hY2Q4LTAyNTAwMDAwMDAwMSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpkZWZhdWx0OmRlZmF1bHQifQ.G9TGa4KGj5B-cMv-0-vuangR2_tFiQ1nJMgtsEPs1BEwPAyjmaC-BL5y0Ux9HyC1mlt0DklO-8_o41i4OD_w0wLymxi8zZQxgY7Tlu3_oE5OKnK58xWN-mMTKKnvfDpZrIBbkWQ5EB49LC7QiTBKGAoixGyOBvU1fmD2AzpdO3sWvNsaOWbMLFcwzHA-M2V-CKU3I07Hxs6uIi9juk4IqkTryfvCDUafTrubpkVktwQr7UwzvmKfbPoWLyn1tbCDhR3Il64daoTE9nlmqWwYZZFmfaZjWWWYfi3QPXuNUNpXRVVd_6gcjUzebR1o-22KoOUbobQ94K-1bYJOQSZNnA
将 token 部分复制到登录页的 token 输入框,登陆即可。 出处:http://www.cnblogs.com/along21/p/9811860.html#auto_id_11
Docker Kubernetes hostPort 代理转发
Docker Kubernetes hostPort 代理转发
hostPort:
- 1. 类似 docker -p 映射宿主级端口到容器。
- 2. 容器所在的主机暴露端口转发到指定容器中。
- 3. hostport 是通过代理转发的。
环境:
- 系统:Centos 7.4 x64
- Docker 版本:18.09.0
- Kubernetes 版本:v1.8
- 管理节点:192.168.1.79
- 工作节点:192.168.1.78
- 工作节点:192.168.1.77
1、创建 yaml 文件
vim hostport.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod2
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
ports:
- name: http
containerPort: 80
hostIP: 0.0.0.0
hostPort: 89
protocol: TCP
- name: https
containerPort: 443
hostIP: 0.0.0.0
hostPort: 443
protocol: TCP


# 指定api版本
apiVersion: v1
# 指定需要创建的资源对象
kind: Pod
metadata:
# 源数据、可以写name,命名空间,对象标签
name: nginx-pod2
# 指定标签
labels:
# 标签名
app: nginx
# 描述资源相关信息
spec:
# 指定容器信息
containers:
# 容器名
- name: nginx
# 容器镜像名
image: nginx:1.10
# hostport管理
ports:
# 指定http端口名称
- name: http
# 指定容器端口
containerPort: 80
# hsotip监听IP,可通过哪些宿主级ip访问
hostIP: 0.0.0.0
# 宿主级暴露端口,它会映射到containerport的容器端口
hostPort: 89
# 指定协议类型
protocol: TCP
# 指定https
- name: https
# 指定容器端口
containerPort: 443
# hsotip监听IP,可通过哪些宿主级ip访问
hostIP: 0.0.0.0
# 宿主级暴露端口,它会映射到containerport的容器端口
hostPort: 443
# 指定协议类型
protocol: TCP
注:可代理多个端口,这里代理的容器端口为 80 与 443。
2、创建容器
kubectl create -f hostport.yaml


命令:kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-pod2 1/1 Running 0 1m


命令:ubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
nginx-pod2 1/1 Running 0 2m 172.17.2.4 192.168.1.78


命令:netstat -lnpt | grep 89
tcp6 0 0 :::89 :::* LISTEN 13373/docker-proxy
命令:netstat -lnpt | grep 443
tcp6 0 0 :::443 :::* LISTEN 13359/docker-proxy
3、浏览器测试
docker – Kubectl:Kubernetes与minikube超时
我已经安装了minikube并启动了它内置的Kubernertes集群
$minikube start
Starting local Kubernetes cluster...
Kubernetes is available at https://192.168.99.100:443.
Kubectl is Now configured to use the cluster.
我也安装了kubectl
$kubectl version
Client Version: version.Info{Major:"1",Minor:"3",GitVersion:"v1.3.0",GitCommit:"283137936a498aed572ee22af6774b6fb6e9fd94",GitTreeState:"clean",BuildDate:"2016-07-01T19:26:38Z",GoVersion:"go1.6.2",Compiler:"gc",Platform:"linux/amd64"}
但我无法成功使用kubectl与正在运行的Kubernetes集群交谈
$kubectl get nodes
Unable to connect to the server: net/http: TLS handshake timeout
编辑
$minikube logs
E0712 19:02:08.767815 1257 docker_manager.go:1955] Failed to create pod infra container: ImagePullBackOff; Skipping pod "kube-addon-manager-minikubevm_kube-system(48abed82af93bb0b941173334110923f)": Back-off pulling image "gcr.io/google_containers/pause-amd64:3.0"
E0712 19:02:08.767875 1257 pod_workers.go:183] Error syncing pod 48abed82af93bb0b941173334110923f,skipping: Failed to "StartContainer" for "POD" with ImagePullBackOff: "Back-off pulling image \"gcr.io/google_containers/pause-amd64:3.0\""
E0712 19:02:23.767380 1257 docker_manager.go:1955] Failed to create pod infra container: ImagePullBackOff; Skipping pod "kube-addon-manager-minikubevm_kube-system(48abed82af93bb0b941173334110923f)": Back-off pulling image "gcr.io/google_containers/pause-amd64:3.0"
E0712 19:02:23.767464 1257 pod_workers.go:183] Error syncing pod 48abed82af93bb0b941173334110923f,skipping: Failed to "StartContainer" for "POD" with ImagePullBackOff: "Back-off pulling image \"gcr.io/google_containers/pause-amd64:3.0\""
E0712 19:02:36.766696 1257 docker_manager.go:1955] Failed to create pod infra container: ImagePullBackOff; Skipping pod "kube-addon-manager-minikubevm_kube-system(48abed82af93bb0b941173334110923f)": Back-off pulling image "gcr.io/google_containers/pause-amd64:3.0"
E0712 19:02:36.766760 1257 pod_workers.go:183] Error syncing pod 48abed82af93bb0b941173334110923f,skipping: Failed to "StartContainer" for "POD" with ImagePullBackOff: "Back-off pulling image \"gcr.io/google_containers/pause-amd64:3.0\""
E0712 19:02:51.767621 1257 docker_manager.go:1955] Failed to create pod infra container: ImagePullBackOff; Skipping pod "kube-addon-manager-minikubevm_kube-system(48abed82af93bb0b941173334110923f)": Back-off pulling image "gcr.io/google_containers/pause-amd64:3.0"
E0712 19:02:51.767672 1257 pod_workers.go:183] Error syncing pod 48abed82af93bb0b941173334110923f,skipping: Failed to "StartContainer" for "POD" with ImagePullBackOff: "Back-off pulling image \"gcr.io/google_containers/pause-amd64:3.0\""
E0712 19:03:02.766548 1257 docker_manager.go:1955] Failed to create pod infra container: ImagePullBackOff; Skipping pod "kube-addon-manager-minikubevm_kube-system(48abed82af93bb0b941173334110923f)": Back-off pulling image "gcr.io/google_containers/pause-amd64:3.0"
E0712 19:03:02.766609 1257 pod_workers.go:183] Error syncing pod 48abed82af93bb0b941173334110923f,skipping: Failed to "StartContainer" for "POD" with ImagePullBackOff: "Back-off pulling image \"gcr.io/google_containers/pause-amd64:3.0\""
E0712 19:03:16.766831 1257 docker_manager.go:1955] Failed to create pod infra container: ImagePullBackOff; Skipping pod "kube-addon-manager-minikubevm_kube-system(48abed82af93bb0b941173334110923f)": Back-off pulling image "gcr.io/google_containers/pause-amd64:3.0"
E0712 19:03:16.766904 1257 pod_workers.go:183] Error syncing pod 48abed82af93bb0b941173334110923f,skipping: Failed to "StartContainer" for "POD" with ImagePullBackOff: "Back-off pulling image \"gcr.io/google_containers/pause-amd64:3.0\""
E0712 19:04:15.829223 1257 docker_manager.go:1955] Failed to create pod infra container: ErrImagePull; Skipping pod "kube-addon-manager-minikubevm_kube-system(48abed82af93bb0b941173334110923f)": image pull Failed for gcr.io/google_containers/pause-amd64:3.0,this may be because there are no credentials on this request. details: (Error response from daemon: Get https://gcr.io/v1/_ping: dial tcp 74.125.28.82:443: I/O timeout)
E0712 19:04:15.829326 1257 pod_workers.go:183] Error syncing pod 48abed82af93bb0b941173334110923f,skipping: Failed to "StartContainer" for "POD" with ErrImagePull: "image pull Failed for gcr.io/google_containers/pause-amd64:3.0,this may be because there are no credentials on this request. details: (Error response from daemon: Get https://gcr.io/v1/_ping: dial tcp 74.125.28.82:443: I/O timeout)"
E0712 19:04:31.767536 1257 docker_manager.go:1955] Failed to create pod infra container: ImagePullBackOff; Skipping pod "kube-addon-manager-minikubevm_kube-system(48abed82af93bb0b941173334110923f)": Back-off pulling image "gcr.io/google_containers/pause-amd64:3.0"
一个.您需要确保与VM一起运行的docker守护程序可以通过代理连接到Internet.
湾您需要确保在主机上运行的kubectl可以在不通过代理的情况下到达VM
使用默认的kubectl示例
>确保将代理传递到由minikube创建的VM(这可确保VM中的docker守护程序可以访问Internet)
minikube start –vm-driver =“kvm”–docker-env =“http_proxy = xxx”–docker-env =“https_proxy = yyy”start
注意:使用代理设置替换xxx和yyy
>获取VM在启动时获得的IP.
minikube ip
注意:每次设置minikube都需要这样做,因为它可以改变
>确保kubectl可以在不进入代理的情况下与此VM通信
export no_proxy =“127.0.0.1,[minikube_ip]”
>现在启动POD并测试它
kubectl run hello-minikube –image = gcr.io / google_containers / echoserver:1.4 –port = 8080
kubectl公开部署hello-minikube –type = NodePort
kubectl获取pod
curl $(minikube service hello-minikube –url)
docker – kubernetes volume hostPath
我想使用kubernetes作为我的默认开发环境,我使用docker在本地设置集群,如official doc中所述.我将我的示例推送到github repository
运行kubernetes集群后,我的设置步骤如下:
* cd cluster_config/app && docker build --tag=k8s_PHP_dev . && cd ../..
* kubectl -s http://127.0.0.1:8080 create -f cluster_config/app/app.rc.yml
* kubectl -s http://127.0.0.1:8080 create -f cluster_config/app/app.services.yml
我的问题出现了,因为我想将本地目录映射为我的应用程序窗格内的卷,这样我就可以动态共享我本地主机和pod之间的文件,这样我就可以开发,更改文件;并动态更新服务.
我使用带有hostPath的卷. pod,复制控制器和服务已成功创建,但pod不共享目录,甚至没有mountPath上的文件.
我做错了什么?
谢谢
例:
hostPath:
path: /home/bitgandtter/Documents/development/PHP/k8s_devel_env
关于Kubernetes / Docker的HTTP(S)负载平衡和docker实现负载均衡的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于docker for mac 安装 kubernetes、kubernetes dashboard、Docker Kubernetes hostPort 代理转发、docker – Kubectl:Kubernetes与minikube超时、docker – kubernetes volume hostPath等相关知识的信息别忘了在本站进行查找喔。
本文标签: