GVKun编程网logo

Kubernetes / Docker的HTTP(S)负载平衡(docker实现负载均衡)

7

如果您对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实现负载均衡)

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

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 代理转发

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超时

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

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属性应该包含要挂载的目录的绝对地址.

例:

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等相关知识的信息别忘了在本站进行查找喔。

本文标签: