如何在不使用 --dry-run 的情况下创建 kubernetes 服务 yaml 文件

Sha*_*ash 4 kubernetes service-node-port-range

看来该--dry-run标志无法提供服务。

kubectl create service --
--add-dir-header            --log-backtrace-at          --server                  
--alsologtostderr           --log-dir                   --skip-headers            
--as                        --log-file                  --skip-log-headers        
--as-group                  --log-file-max-size         --stderrthreshold         
--cache-dir                 --log-flush-frequency       --tls-server-name         
--certificate-authority     --logtostderr               --token                   
--client-certificate        --match-server-version      --user                    
--client-key                --namespace                 --username                
--cluster                   --password                  --v                       
--context                   --profile                   --vmodule                 
--insecure-skip-tls-verify  --profile-output            --warnings-as-errors      
--kubeconfig                --request-timeout   
Run Code Online (Sandbox Code Playgroud)

有没有办法创建一个没有选项的服务 yaml 文件--dry-run=client。我尝试使用以下命令并收到错误。

kubectl create service ns-service nodeport --dry-run=client -o yaml >nodeport.yaml
Error: unknown flag: --dry-run
See 'kubectl create service --help' for usage.
Run Code Online (Sandbox Code Playgroud)

mGe*_*eek 11

有两种方法可以做到这一点。 =================================================== ===============

第一种方法: - 使用kubectl create service

您在这里做的错误是您在命令中的服务类型之前给出了服务名称,这就是它失败的原因。

正确的方法是

句法 :

kubectl create service clusterip NAME [--tcp=<port>:<targetPort>] [--dry-run=server|client|none] [options]
Run Code Online (Sandbox Code Playgroud)

例子 :

kubectl create service nodeport ns-service --tcp=80:80 --dry-run=client -o yaml
Run Code Online (Sandbox Code Playgroud)

=================================================== ===============

第二种方式:-

这里可以使用kubectl expose命令创建服务文件。

假设您有一个名为nginx运行的 pod 。并且您想为nginx pod创建一个服务。

然后我将编写以下命令来生成服务文件。

语法:

kubectl expose [pod/deployment/replicaset] [name-of-pod/deployment/replicaset]  --port=80 --target-port=8000 --dry-run=client -o yaml
Run Code Online (Sandbox Code Playgroud)

例子:

kubectl expose pod nginx  --port=80 --target-port=8000 --dry-run=client -o yaml 
Run Code Online (Sandbox Code Playgroud)

输出:

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    run: nginx
  name: nginx
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8000
  selector:
    run: nginx
status:
  loadBalancer: {}
Run Code Online (Sandbox Code Playgroud)