当前位置: 首页 > 知识库问答 >
问题:

使用LB设置Kubernetes

宗政文彬
2023-03-14

我正在尝试使用负载平衡器和入口配置单节点kubernetes clustor,但我无法从外部IP访问它。此外,如果我试图卷曲/弯曲LB的内部IP,它也不起作用。我完全可以得到服务本身。有人能帮我吗?

配置

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
spec:
  rules:
    - host: MY_DOMAIN
      http:
        paths:
        - path: /
          backend:
            serviceName: apple-service
            servicePort: 5678
---

kind: Service
apiVersion: v1
metadata:
  name: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
spec:
  type: LoadBalancer
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
  ports:
    - name: http
      port: 80
      targetPort: 80
    - name: https
      port: 443
      targetPort: 443

  externalIPs:
    - XX.XX.XX.XX


---

kind: Pod
apiVersion: v1
metadata:
  name: apple-app
  labels:
    app: apple
spec:
  containers:
    - name: apple-app
      image: hashicorp/http-echo
      args:
        - "-text=apple"

---

kind: Service
apiVersion: v1
metadata:
  name: apple-service
spec:
  selector:
    app: apple
  ports:
    - port: 5678 # Default port for image

kubectl获得全部

NAME            READY   STATUS    RESTARTS   AGE
pod/apple-app   1/1     Running   0          12m

NAME                    TYPE           CLUSTER-IP      EXTERNAL-IP       PORT(S)                      AGE
service/apple-service   ClusterIP      10.108.8.152    <none>            5678/TCP                     12m
service/ingress-nginx   LoadBalancer   10.111.230.95   XX.XX.XX.XX  80:30338/TCP,443:31035/TCP   10m
service/kubernetes      ClusterIP      10.96.0.1       <none>            443/TCP                      6d

Kubectl获得入口

NAME           HOSTS   ADDRESS   PORTS   AGE
test-ingress   *                 80      6d

卷曲10.107.97.101:5678

apple

Curl XX. XX. XX. XX: 80(外部ip)|localhost:80|MY_DOMAIN: 80

curl: (7) Failed to connect to XX.XX.XX.XX port 80: Connection refused

安装

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

mkdir $HOME/.kube -p
sudo cp /etc/kubernetes/admin.conf $HOME/.kube/
sudo chown $(id -u):$(id -g) $HOME/.kube/admin.conf
export KUBECONFIG=$HOME/.kube/admin.conf
echo "export KUBECONFIG=$HOME/.kube/admin.conf" | tee -a ~/.bashrc


# flanel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/k8s-manifests/kube-flannel-rbac.yml

# untained master to use as container host
kubectl taint nodes --all node-role.kubernetes.io/master-


# Install helm - for lets encrypt
sudo snap install helm --classic
PATH=$PATH:/snap/bin

# enable helm
helm init
helm install --name cert-manager -f cert-manager-values.yaml --namespace=default stable/cert-manager --set rbac.create=false
helm repo add jetstack https://charts.jetstack.io

# create letsencrypt 
kubectl create namespace cert-manager
kubectl label namespace cert-manager certmanager.k8s.io/disable-validation=true
kubectl apply -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.8/deploy/manifests/00-crds.yaml

共有1个答案

汪翰墨
2023-03-14

您好@Fabi您在测试入口规范中的服务名称应为

服务名称:苹果服务

并删除

externalTrafficPolicy:本地

从您的入口-nginx服务规范。

根据以下内容编辑入口规范:

apiVersion:网络。k8s。io/v1beta1类型:入口元数据:名称:测试入口规范:规则:-主机:*http:路径:-路径:/*后端:服务名称:apple service servicePort:5678

 类似资料:
  • 基于 Django 的流程引擎,可方便的嵌入已有系统。提供有前端解决方案,进一步降低流程引擎的使用门槛。 Demo Demo site: http://wf.haoluobo.com/ username: admin password: password Switch to another user: http://wf.haoluobo.com/impersonate/search Stop s

  • 问题内容: 当您想使用Javascript更改HTML时,如何知道何时使用以下任一方法? 问题答案: 设置通常用于输入/表单元素。通常用于div,span,td和类似元素。

  • 我正在尝试将vue与vuex结合起来。但是有一个错误,我无法将我的链接到我的链接到我的index.html。 我的设置是: main.js: routes.js: index.html

  • 我试图设置本地DynamoDB实例与SpringBoot。我跟着这个,但是格拉德尔。 当我尝试运行我的应用程序时,会出现以下异常: 我知道这是由于歧义导致的依赖注入失败,但我的是一个无参数构造函数。不确定歧义在哪里。 以下是我的代码: 格雷德尔锉刀 发电机配置 代理(实体) @DynamoDBTable(tableName="Agent")公共类Agent{私有字符串代理号;私有整数id;私有企业

  • 问题内容: 如何使用jQuery设置和取消设置Cookie,例如创建一个名为的Cookie 并将其值设置为? 问题答案: 2019年4月更新 Cookie的读取/操作不需要jQuery,因此请不要使用下面的原始答案。 转到https://github.com/js-cookie/js-cookie,然后在其中使用不依赖jQuery的库。 基本示例: 有关详细信息,请参见github上的文档。 参见