n2-kubernetes操作命令详细一览

时间:2022-07-28
本文章向大家介绍n2-kubernetes操作命令详细一览,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

[TOC]

K8S 基础命令

Kubeadm 命令

描述:该命令是安装K8s后的基础命令可以进行K8s主或者从节点的初始化,以及节点加入管理;

init - 初始化配置相关

描述:该命令用户初始化节点设置master节点的控制面板以及网络相关的设置;

# 示例1.Master节点初始化采用指定yaml配置文件进行初始化参数的传入
cat <<EOF > ./kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v${K8SVERSION}
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
controlPlaneEndpoint: "${APISERVER_NAME}:6443"
networking:
    serviceSubnet: "10.99.0.0/16"
    podSubnet: "${POD_SUBNET}"
    dnsDomain: "cluster.local"
EOF
#执行完成会显示集群master节点加入以及Node节点加入的命令行(有效期两个小时)
kubeadm init --config=kubeadm-config.yaml --upload-certs


# 实例2.Master节点初始可以直接采用参数进行指定
kubeadm init --apiserver-advertise-address=0.0.0.0                
--apiserver-cert-extra-sans=127.0.0.1 
--image-repository=registry.aliyuncs.com/google_containers  
--ignore-preflight-errors=all 
--kubernetes-version=v1.17.4  
--service-cidr=10.96.0.0/16  
--pod-network-cidr=10.244.0.0/16 
--token-ttl=24h0m0s 
--control-plane-endpoint=192.168.2.175 
--upload-certs 
# 参数说明:
# –pod-network-cidr=            #指定 Pod 网段的 IP 地址块。指定为 flannel 的默认网段 10.244.0.0/16 ,方便后续部署 flannel 。
# –apiserver-advertise-address= #指定 api-server 监听的地址,这个地址需要 node 节点访问得到。


# 实例2.获得加入控制平台的证书(使用此命令调用init工作流的单个阶段并且上传证书到kubeadm-certs)
kubeadm init phase upload-certs --upload-certs
token - 生成认证相关信息

命令语法:


# 参数
--print-join-command

基础实例:

#示例1.节点初始化命令行生成(有效期两个小时,token有效期24h)
kubeadm token create --print-join-command
kubeadm token create $(kubeadm token generate) --print-join-command --ttl=0 #方式2

#示例2.生成的token有效期查看
kubeadm token list
# TOKEN                     TTL         EXPIRES                     USAGES                   DESCRIPTION                                                EXTRA GROUPS
# 2af75y.5fio8knxu9e2ygvz   23h         2020-06-25T09:28:19+08:00   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token
config - 基础环境依赖配置

基础实例:

# 示例1.指定kubernetes版本查看依赖镜像,并指定仓库源;
kubeadm config images list --image-repository mirrorgcrio  --kubernetes-version=1.18.3
# mirrorgcrio/kube-apiserver:v1.18.3
# mirrorgcrio/kube-controller-manager:v1.18.3
# mirrorgcrio/kube-scheduler:v1.18.3
# mirrorgcrio/kube-proxy:v1.18.3
# mirrorgcrio/pause:3.2
# mirrorgcrio/etcd:3.4.3-0
# mirrorgcrio/coredns:1.6.7


# 示例2.指定版本以及镜像仓库(由于国内环境无法访问k8s.gcr.io)
kubeadm config images pull --image-repository mirrorgcrio  --kubernetes-version=1.18.3
join - 集群或者节点加入初始化

命令语法:

#参数
--control-plane #控制面板
--certificate-key 
--discovery-token-ca-cert-hash
--token         #认证token

基础使用:

# 示例1.集群加入限Master节点
kubeadm join apiserver.test:6443 --token hzlzrr.uwuegx4locpu36oc 
    --discovery-token-ca-cert-hash sha256:4cbe428cb3503277be9fbcf3a99de82a97397a624dd94d4270c4eed1b861f951 
    --control-plane --certificate-key 28b178f04afae3770aa92add0206650b2359dd61424f127a6d44142dd15a280d

# 示例2.工作节点的加入限Node节点
kubeadm join apiserver.test:6443 --token hzlzrr.uwuegx4locpu36oc 
    --discovery-token-ca-cert-hash sha256:4cbe428cb3503277be9fbcf3a99de82a97397a624dd94d4270c4eed1b861f951
reset - 节点重置操作

基础实例:

# 重置Workers节点操作
kubeadm reset -f

Kubectl 命令

描述:该命令实际上是操作 Kubernetes 对象(创建、修改、删除)的方法; https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands

Kubectl 自动补全:

# 自动补全
source <(kubectl completion bash) # 在 bash 中设置当前 shell 的自动补全,要先安装 bash-completion 包
# 在您的 bash shell 中永久的添加自动补全
echo "source <(kubectl completion bash)" >> ~/.bashrc
# 在您的 zsh shell 中永久的添加自动补全
echo "if [ $commands[kubectl] ]; then source <(kubectl completion zsh); fi" >> ~/.zshrc

#加入到启动配置文件中为 kubectl 使用一个速记别名该别名也可以与 completion 一起使用;
cat >>  ~/.bashrc <<'END'
alias k=kubectl
complete -F __start_kubectl k
END

使用案例:

[[email protected] ~]$ k get cs
NAME                 STATUS    MESSAGE             ERROR
scheduler            Healthy   ok
controller-manager   Healthy   ok
etcd-2               Healthy   {"health":"true"}
etcd-1               Healthy   {"health":"true"}
etcd-0               Healthy   {"health":"true"}
api-versions - 当前可用集群支持的版本
$ kubectl api-versions
# admissionregistration.k8s.io/v1
# admissionregistration.k8s.io/v1beta1
# apiextensions.k8s.io/v1
# apiextensions.k8s.io/v1beta1
# apiregistration.k8s.io/v1
# apiregistration.k8s.io/v1beta1
# apps/v1
# authentication.k8s.io/v1
# authentication.k8s.io/v1beta1
# authorization.k8s.io/v1
# authorization.k8s.io/v1beta1
# autoscaling/v1
# autoscaling/v2beta1
# autoscaling/v2beta2
# batch/v1
# batch/v1beta1
# certificates.k8s.io/v1beta1
# coordination.k8s.io/v1
# coordination.k8s.io/v1beta1
# crd.projectcalico.org/v1
# discovery.k8s.io/v1beta1
# events.k8s.io/v1beta1
# extensions/v1beta1
# networking.k8s.io/v1
# networking.k8s.io/v1beta1
# node.k8s.io/v1beta1
# policy/v1beta1
# rbac.authorization.k8s.io/v1
# rbac.authorization.k8s.io/v1beta1
# scheduling.k8s.io/v1
# scheduling.k8s.io/v1beta1
# storage.k8s.io/v1
# storage.k8s.io/v1beta1
# v1
api-resources - 获得支持资源的完整列表

描述:在必须指定要描述的资源类型的时候使用。

kubectl api-resources
NAME                              SHORTNAMES   APIGROUP                       NAMESPACED   KIND
bindings                                                                      true         Binding
componentstatuses                 cs                                          false        ComponentStatus
configmaps                        cm                                          true         ConfigMap
endpoints                         ep                                          true         Endpoints
events                            ev                                          true         Event
limitranges                       limits                                      true         LimitRange
namespaces                        ns                                          false        Namespace
nodes                             no                                          false        Node
persistentvolumeclaims            pvc                                         true         PersistentVolumeClaim
persistentvolumes                 pv                                          false        PersistentVolume
pods                              po                                          true         Pod
podtemplates                                                                  true         PodTemplate
replicationcontrollers            rc                                          true         ReplicationController
resourcequotas                    quota                                       true         ResourceQuota
secrets                                                                       true         Secret
serviceaccounts                   sa                                          true         ServiceAccount
services                          svc                                         true         Service
mutatingwebhookconfigurations                  admissionregistration.k8s.io   false        MutatingWebhookConfiguration
validatingwebhookconfigurations                admissionregistration.k8s.io   false        ValidatingWebhookConfiguration
customresourcedefinitions         crd,crds     apiextensions.k8s.io           false        CustomResourceDefinition
apiservices                                    apiregistration.k8s.io         false        APIService
controllerrevisions                            apps                           true         ControllerRevision
daemonsets                        ds           apps                           true         DaemonSet
deployments                       deploy       apps                           true         Deployment
replicasets                       rs           apps                           true         ReplicaSet
statefulsets                      sts          apps                           true         StatefulSet
tokenreviews                                   authentication.k8s.io          false        TokenReview
localsubjectaccessreviews                      authorization.k8s.io           true         LocalSubjectAccessReview
selfsubjectaccessreviews                       authorization.k8s.io           false        SelfSubjectAccessReview
selfsubjectrulesreviews                        authorization.k8s.io           false        SelfSubjectRulesReview
subjectaccessreviews                           authorization.k8s.io           false        SubjectAccessReview
horizontalpodautoscalers          hpa          autoscaling                    true         HorizontalPodAutoscaler
cronjobs                          cj           batch                          true         CronJob
jobs                                           batch                          true         Job
certificatesigningrequests        csr          certificates.k8s.io            false        CertificateSigningRequest
leases                                         coordination.k8s.io            true         Lease
bgpconfigurations                              crd.projectcalico.org          false        BGPConfiguration
bgppeers                                       crd.projectcalico.org          false        BGPPeer
blockaffinities                                crd.projectcalico.org          false        BlockAffinity
clusterinformations                            crd.projectcalico.org          false        ClusterInformation
felixconfigurations                            crd.projectcalico.org          false        FelixConfiguration
globalnetworkpolicies                          crd.projectcalico.org          false        GlobalNetworkPolicy
globalnetworksets                              crd.projectcalico.org          false        GlobalNetworkSet
hostendpoints                                  crd.projectcalico.org          false        HostEndpoint
ipamblocks                                     crd.projectcalico.org          false        IPAMBlock
ipamconfigs                                    crd.projectcalico.org          false        IPAMConfig
ipamhandles                                    crd.projectcalico.org          false        IPAMHandle
ippools                                        crd.projectcalico.org          false        IPPool
networkpolicies                                crd.projectcalico.org          true         NetworkPolicy
networksets                                    crd.projectcalico.org          true         NetworkSet
endpointslices                                 discovery.k8s.io               true         EndpointSlice
events                            ev           events.k8s.io                  true         Event
ingresses                         ing          extensions                     true         Ingress
ingressclasses                                 networking.k8s.io              false        IngressClass
ingresses                         ing          networking.k8s.io              true         Ingress
networkpolicies                   netpol       networking.k8s.io              true         NetworkPolicy
runtimeclasses                                 node.k8s.io                    false        RuntimeClass
poddisruptionbudgets              pdb          policy                         true         PodDisruptionBudget
podsecuritypolicies               psp          policy                         false        PodSecurityPolicy
clusterrolebindings                            rbac.authorization.k8s.io      false        ClusterRoleBinding
clusterroles                                   rbac.authorization.k8s.io      false        ClusterRole
rolebindings                                   rbac.authorization.k8s.io      true         RoleBinding
roles                                          rbac.authorization.k8s.io      true         Role
priorityclasses                   pc           scheduling.k8s.io              false        PriorityClass
csidrivers                                     storage.k8s.io                 false        CSIDriver
csinodes                                       storage.k8s.io                 false        CSINode
storageclasses                    sc           storage.k8s.io                 false        StorageClass
volumeattachments                              storage.k8s.io                 false        VolumeAttachment
delete - 删除节点和资源
#1.在Master节点上删除指定的节点
kubectl delete node your-node-name
drain - 节点组件清理

基础示例:

#示例1.强制删除节点本地数据以及运行的容器
kubectl drain master-02 --delete-local-data --force --ignore-daemonsets
# WARNING: ignoring DaemonSet-managed Pods: kube-system/kube-flannel-ds-amd64-mlcvm, kube-system/kube-proxy-f7rnh
# evicting pod kube-system/coredns-5fd54d7f56-22fwz
# bec	pod/coredns-5fd54d7f56-22fwz evicted
# node/server4 evicted
kubectl get nodes master-02
# NAME      STATUS                     ROLES    AGE     VERSION
# master-02   Ready,SchedulingDisabled   <none>   3h36m   v1.18.3		# 不再调用此结点
apply - 部署应用

基础实例:

#1.执行deployment/services操作的部署命令
kubectl apply -f nginx-deployment.yaml
# deployment.apps/nginx-deployment created

kubectl apply -f redis-master-service.yaml
# service/redis-master-service created
get - 显示资源列表
# 基础语法
kubectl get 资源类型

# 基础参数
-l          #获取相关label标签的资源列表
-o          #以 wide,yaml,jsonpath="{..image}",go-template 格式化输出
--namespace #查找指定名称空间下的 Pod
--template  #使用 go-template 格式化

基础示例:

#1.获取类型为Deployment的资源列表
kubectl get deployments
# NAME               READY   UP-TO-DATE   AVAILABLE   AGE
# nginx-deployment   1/1     1            1           8h


#2.获取类型为Pod的资源列表
kubectl get pods #默认显示名称为default的pod列表
kubectl get pods --all-namespaces #执行命令,获取所有名称空间中的所有 Pod
# NAME                              READY   STATUS    RESTARTS   AGE
# nginx-deployment-674ff86d-btmt4   1/1     Running   0          8h
kubectl get pods -l app=nginx  #获取相关label标签的资源列表
# NAME                               READY   STATUS    RESTARTS   AGE
# nginx-deployment-cc7df4f8f-2jlnp   1/1     Running   0          47m
# nginx-deployment-cc7df4f8f-jxwrs   1/1     Running   0          47m 
# 采用jsonpath语法使用 -o jsonpath={..image} 参数,输出结果将格式化为只包含容器镜像名字的形式 
kubectl get pods --namespace kube-system -o jsonpath="{..image}" # 按名称空间查找容器
kubectl get pods --all-namespaces -o=jsonpath="{..image}" -l app=redis
# redis redis:latest
kubectl get pods --all-namespaces -o jsonpath="{..image}" | tr -s '[[:space:]]' 'n' |sort | uniq -c  # jsonpath 将空格替换为新的行并对对结果排序,然后进行计数
# 24 calico/cni:v3.13.1
# 2 calico/kube-controllers:v3.13.1
# 12 calico/node:v3.13.1
# 12 calico/pod2daemon-flexvol:v3.13.1
# 4 mirrorgcrio/coredns:1.6.7
# 6 mirrorgcrio/etcd:3.4.3-0
# 6 mirrorgcrio/kube-apiserver:v1.18.4
# 6 mirrorgcrio/kube-controller-manager:v1.18.4
# 12 mirrorgcrio/kube-proxy:v1.18.4
# 6 mirrorgcrio/kube-scheduler:v1.18.4
# 1 redis
# 1 redis:latest
#用 Pod 中 image 字段的绝对路径来查找容器的镜像名字,可以规避 image 字段重复出现的情况。
kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}" |tr -s '[[:space:]]' 'n' |  uniq -c | sort -r
# .items[*]:每一个返回值
# .spec: 获取 spec
# .containers[*]: 每一个 container
# .image:获取 image
kubectl get pods -o jsonpath="{.items[*].spec.containers[*].image}" |tr -s '[[:space:]]' 'n' |  uniq -c | sort -r
    #   1 redis
#如果通过名字查找 Pod由于返回结果只有一个 Pod,此时,.items[*] 这一部分应该从 jsonpath 中移除(效果同上)
kubectl get pods redis-master-deployment-7d557b94bb-bzw2v -o jsonpath="{.spec.containers[*].image}" |tr -s '[[:space:]]' 'n' |  uniq -c | sort -r
    #   1 redis
# map[containerPort:6379 protocol:TCP]
# 按Pod查找容器输出结果可以通过 rannge 操作遍历(值得学习分隔)
kubectl get pods -o=jsonpath='{range .items[*]}{"n"}{.metadata.name}{":t"}{range .spec.containers[*]}{.image}{", "}{end}{end}' |sort
# redis-master-deployment-7d557b94bb-bzw2v:       redis,
kubectl get pods --all-namespaces -o go-template --template="{{range .items}}{{range .spec.containers}}{{.image}} {{end}}{{end}}"
kubectl get pods redis-master-deployment-7d557b94bb-bzw2v --template='{{(index (index .spec.containers 0).ports 0)}}{{"n"}}'  ##使用go-template罗列容器进行Json解析

#3.获取类型为Node的资源列表
kubectl get nodes
# NAME   STATUS   ROLES    AGE   VERSION
# k8s    Ready    master   29h   v1.18.2
kubectl get nodes -o wide
# NAME      STATUS   ROLES    AGE   VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION              CONTAINER-RUNTIME
# ks8test   Ready    master   23h   v1.18.3   10.10.107.193   <none>        CentOS Linux 7 (Core)   5.7.0-1.el7.elrepo.x86_64   docker://19.3.9
# node-1    Ready    <none>   41m   v1.18.3   10.20.172.82    <none>        CentOS Linux 7 (Core)   5.7.0-1.el7.elrepo.x86_64   docker://19.3.9


#4.名称空间在命令后增加 -A 或 --all-namespaces 可查看所有 名称空间中 的对象,使用参数 -n 可查看指定名称空间的对象,
# 查看所有名称空间的 Deployment
kubectl get deployments -A  # --all-namespaces
# 查看 kube-system 名称空间的 Deployment
kubectl get deployments -n kube-system
# NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
# calico-kube-controllers   1/1     1            1           29h
# coredns                   2/2     2            2           29h


#5.Services抽象层查看
kubectl get services -o wide
kubectl get svc -o wide
# NAME            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE   SELECTOR
# kubernetes      ClusterIP   10.96.0.1      <none>        443/TCP        40h   <none>
# redis-master-service   ClusterIP   10.99.192.159   <none>        6379/TCP   8m24s   app=redis,role=master,tier=backend


#6.指定名称空间的配置信息查看
kubectl get cm kubeadm-config -n kube-system -o yaml
# apiVersion: v1
# data:
#   ClusterConfiguration: |
#     apiServer:
#       extraArgs:
#         authorization-mode: Node,RBAC
#       timeoutForControlPlane: 4m0s
#     apiVersion: kubeadm.k8s.io/v1beta2


#7.指定名称空间选举信息查看
kubectl get ep kube-controller-manager -n kube-system -o yaml
# apiVersion: v1
# kind: Endpoints
# metadata:
#   annotations:
#     control-plane.alpha.kubernetes.io/leader: '{"holderIdentity":"master-01_137ddc1b-55bf-413b-81d3-f76654daa41e","leaseDurationSeconds":15,"acquireTime":"2020-06-24T03:51:16Z","renewTime":"2020-06-28T07:56:52Z","leaderTransitions":6}'
#   creationTimestamp: "2020-06-23T04:45:29Z"


#8.查看 ReplicaSet(副本) 状态与信息
kubectl get rs
# NAME                                 DESIRED   CURRENT   READY   AGE
# redis-master-deployment-7d557b94bb   1         1         1       4m46s

注意事项:

  • 注意并非所有对象都在名称空间里;
describe - 显示有关资源的详细信息
#kubectl describe 资源类型 资源名称

#1.查看名称为nginx-deployment-674ff86d-btmt4的Pod的信息
kubectl describe pod nginx-deployment-674ff86d-btmt4
# Name:         nginx-deployment-674ff86d-btmt4
# Namespace:    default
# Priority:     0
# Node:         node/10.10.107.192
# Start Time:   Thu, 07 May 2020 14:12:18 +0800
# Labels:       app=nginx
#               pod-template-hash=674ff86d
# Annotations:  cni.projectcalico.org/podIP: 10.100.167.129/32
#               cni.projectcalico.org/podIPs: 10.100.167.129/32
# Status:       Running
# IP:           10.100.167.129
# IPs:
#   IP:           10.100.167.129
# Controlled By:  ReplicaSet/nginx-deployment-674ff86d


#2.查看名称为nginx-deployment的Deployment的信息
kubectl describe deployment nginx-deployment
# Name:                   nginx-deployment
# Namespace:              default
# CreationTimestamp:      Thu, 07 May 2020 14:12:18 +0800
# Labels:                 app=nginx
# Annotations:            deployment.kubernetes.io/revision: 1
# Selector:               app=nginx
# Replicas:               1 desired | 1 updated | 1 total | 1 available | 0 unavailable
# ...
# Conditions:
#   Type           Status  Reason
#   ----           ------  ------
#   Available      True    MinimumReplicasAvailable
#   Progressing    True    NewReplicaSetAvailable
# OldReplicaSets:  <none>
# NewReplicaSet:   nginx-deployment-674ff86d (1/1 replicas created)
# Events:          <none>


#3.查看节点各项信息
kubectl describe node master-03
# Name:               master-03
# Roles:              master
# Labels:             beta.kubernetes.io/arch=amd64
#                     beta.kubernetes.io/os=linux
#                     kubernetes.io/arch=amd64
#                     kubernetes.io/hostname=master-03
#                     kubernetes.io/os=linux
#                     node-role.kubernetes.io/master=
# Annotations:        kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
#                     node.alpha.kubernetes.io/ttl: 0
#                     projectcalico.org/IPv4Address: 10.10.107.193/24
#                     projectcalico.org/IPv4IPIPTunnelAddr: 10.100.133.128
#                     volumes.kubernetes.io/controller-managed-attach-detach: true
cordon - 节点限制加入资源
# kubectl cordon [节点名称]
# (1) 禁止新建立的Pod在该节点上运行
kubectl cordon node-1
node/node-1 cordoned
logs - 查看pod中的容器的打印日志(和命令docker logs 类似)

描述:输出pod中一个容器的日志,如果pod只包含一个容器则可以省略容器名。

# kubectl logs [Pod名称]
-c, --container="": 容器名。
-f, --follow[=false]: 指定是否持续输出日志。
    --interactive[=true]: 如果为true,当需要时提示用户进行输入。默认为true。
    --limit-bytes=0: 输出日志的最大字节数。默认无限制。
-p, --previous[=false]: 如果为true,输出pod中曾经运行过,但目前已终止的容器的日志。
    --since=0: 仅返回相对时间范围,如5s、2m或3h,之内的日志。默认返回所有日志。只能同时使用since和since-time中的一种。
    --since-time="": 仅返回指定时间(RFC3339格式)之后的日志。默认返回所有日志。只能同时使用since和since-time中的一种。
    --tail=-1: 要显示的最新的日志条数。默认为-1,显示所有的日志。
    --timestamps[=false]: 在日志中包含时间戳。

#查看名称为nginx-pod-XXXXXXX的Pod内的容器打印的日志
#本案例中的 nginx-pod 没有输出日志,所以您看到的结果是空的
kubectl logs -f nginx-deployment-674ff86d-btmt4

# 返回pod ruby中已经停止的容器web-1的日志快照
$ kubectl logs -p -c ruby web-1

# 持续输出pod ruby中的容器web-1的日志
$ kubectl logs -f -c ruby web-1

# 仅输出pod nginx中最近的20条日志
$ kubectl logs --tail=20 nginx

# 输出pod nginx中最近一小时内产生的所有日志
$ kubectl logs --since=1h nginx

# 输出命名空间为WeiyiGeek,pods为Blog的日志仅返回指定时间(RFC3339格式)之后的日志并且仅仅输出1024bytes
$ kubectl logs Blog -n WeiyiGeek --since-time="2018-03T13:24:59Z08:00" --limit-bytes=1024
exec - 在pod中的容器环境内执行命令(和命令docker exec 类似)
# kubectl exec Pod名称 操作命令
# 在名称为nginx-pod-xxxxxx的Pod中运行bash
kubectl exec -it nginx-deployment-674ff86d-btmt4 /bin/bash
# kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl kubectl exec [POD] -- [COMMAND] instead.
# [email protected]:/#
run - 运行一个pod应用

基础示例:

# 示例1.这是一种自主式的pod建立方式,还有一种deployment控制器方式;
kubectl run helloworld --image=hello-world	
pod/helloworld created
# 查看执行的结果日志
# kubectl logs helloworld
port-forward - 使用资源的名称来进行本地端口转发pod

参数说明:

--address=[localhost]: 要监听的地址(逗号分隔)。
--pod-running-timeout=1m0s: 等待时间的长度(如5s, 2m,或3h,大于零)

基础实例:

kubectl port-forward --address 127.0.0.1,10.10.107.191 redis-master-deployment-7d557b94bb-bzw2v 7000:6379
# Forwarding from 10.10.107.191:7000 -> 6379
# Forwarding from 127.0.0.1:7000 -> 6379
# Handling connection for 7000 (连接到此端口反应)