小编ccd*_*ccd的帖子

Ingress 以 clusterIP 类型公开服务

是否可以通过 ClusterIP 类型的 ingress 来暴露服务?

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-service
  ports:
  - name: my-service-port
    port: 4001
    targetPort: 4001
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: app-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
    - host: my.example.com
      http:
        paths:
        - path: /my-service
          backend:
            serviceName: my-service
            servicePort: 4001
Run Code Online (Sandbox Code Playgroud)

我知道该服务可以通过 NodePort 类型公开,但如果有人可以向我展示从云中的互联网世界检测内部服务的最快方法是什么,它可能会多花费一个 NAT 连接。

kubernetes kubernetes-ingress

4
推荐指数
1
解决办法
3415
查看次数

Kubectl exec 到部署中的特定容器

运行具有三个 pod 的部署。

NAME                        READY   STATUS    RESTARTS   AGE
my-api-XXX                  3/3     Running   0          4h

Containers:
  zipkin:
    Container ID:   docker://XXX
    Image:          openzipkin/zipkin:2.11
    Image ID:       docker-pullable://openzipkin/zipkin@sha256:XXX
    Port:           8611/TCP
    Host Port:      8611/TCP
    State:          Running
      Started:      Mon, 17 Feb 2020 12:13:03 +0800
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      XXX
  my-api:
    Container ID:   docker://XXX
    Image:          XXX
    Image ID:       XXX
    Ports:          5000/TCP, 6000/TCP
    Host Ports:     5000/TCP, 6000/TCP
    State:          Running
      Started:      Mon, 17 Feb 2020 12:13:04 +0800
    Ready:          True
    Restart Count:  0
    Mounts:
      XXX
  my-metrics:
    Container …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubectl

2
推荐指数
1
解决办法
3844
查看次数

ingress无法获取默认的http后端

我配置的入口与控制器 ingress-nginx 一起运行。

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: app-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  tls:
  - hosts:
    - XXX.XX.com
    secretName: app-tls
  rules:
  - host: XXX.XX.com
    http:
      paths:
      - path: /my-api(/|$)(.*)
        backend:
          serviceName: app
          servicePort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: my-api
spec:
  selector:
    app: my-api
  ports:
  - name: app
    port: 3000
    targetPort: 3000

Run Code Online (Sandbox Code Playgroud)

我可以在本地运行 api curl localIP:3000/testapi,但它不能远程运行。

# kubectl describe ingress app-ingress
Name:             app-ingress
Namespace:        default
Address:          XX.XX.XX.XX
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
TLS: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-ingress

2
推荐指数
1
解决办法
6193
查看次数

如何使用刀柄注射适配器

我有一个完整的recyclerView示例,现在我想使用hilt将此示例的ItemListAdapter注入到我的ItemListFragment中。但如果我还想要剑柄之道,似乎是做不到的。

class ItemListFragment : Fragment() {

    private val viewModel: ItemListViewModel by viewModels()
    private var adapter: ItemListAdapter? = null

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        val binding = FragmentItemListBinding.inflate(inflater)
        binding.lifecycleOwner = this
        binding.viewModel = viewModel

        adapter =
            ItemListAdapter(
                ItemListOnClickListener { itemId ->
                    viewModel.onItemClicked(itemId)
                })
        binding.itemList.adapter = adapter

        return binding.root
    }
}

class ItemListAdapter(private val onClickListener: ItemListOnClickListener):
    ListAdapter<Item, ItemListAdapter.ViewHolder>(
        ItemListDiffCallback()
    ) {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        return ViewHolder(
            ListItemBinding.inflate(LayoutInflater.from(parent.context))
        )
    }

    override …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview dagger-hilt

2
推荐指数
1
解决办法
1万
查看次数

重启工作节点docker服务时kubelet配置yaml丢失

当我在工作节点中重新启动 docker 服务时,主节点中的 kubelet 日志报告 no such file 错误。

# in work node
# systemctl restart docker service

# in master node
# journalctl -u kubelet
# failed to load Kubelet config file /var/lib/kubelet/config.yaml, error failed to read kubelet config file "/var/lib/kubelet/config.yaml", error: open /var/lib/kubelet/config.yaml: no such file or directory
Run Code Online (Sandbox Code Playgroud)

kubernetes kubelet

1
推荐指数
2
解决办法
1万
查看次数

使用 kubeadm 重置工作节点何时重新加入主节点

当我耗尽并删除集群中现有的工作节点时,如果我想将其重新加入主节点,它会报告下面的错误。

error execution phase preflight: [preflight] Some fatal errors occurred: 
  [ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists
  [ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists
Run Code Online (Sandbox Code Playgroud)

kubernetes kubeadm

0
推荐指数
1
解决办法
4440
查看次数

如何在颤振中模拟数据库

我试图模拟数据库来测试我的本地 api,我在官方文档中搜索找到可以很好地与远程 api 一起使用的 mockito,但也不能与本地数据库开箱即用,有什么办法可以解决它吗?

mockito flutter sqflite

0
推荐指数
1
解决办法
471
查看次数

如何在Go中清除执行缓存

当我使用标志包

// main.go

import (
  ...
  "flag"  
)

func main() {
  ...
  flag.Parse()

  switch flag.Arg(0) {
  case "doSomething1":
    ...
  case "doSomething2":
    ...
  }

}
Run Code Online (Sandbox Code Playgroud)

如果doSomething1参数为我打印了一些错误消息,无论我如何修复源代码,它都无法删除旧的错误代码并重新编译。

// command-line

# go build ./main.go
# ./main doSomething1
# error doSomething1 can not work

-- I fix my code

# ./main doSomething1
# error doSomething1 can not work

-- the error message also show me again
-- I have to delete main and build again

# rm ./main
# go build ./main.go
# ./main.go …
Run Code Online (Sandbox Code Playgroud)

go

-1
推荐指数
1
解决办法
63
查看次数

go中[""]是什么意思

我在范围循环中看到这一点以获取 MIME 标头。

    for _, ext := range parseExtensions(r.Header) {
        if ext[""] != "permessage-deflate" {
            continue
        }
        compress = true
        break
    }
Run Code Online (Sandbox Code Playgroud)

syntax go

-4
推荐指数
1
解决办法
49
查看次数