Kubernetes之Pod常用操作

一、命令行查看pod

1、不指定命名查看pod

        通过如下命令,不指定命名空间,查看的是default命名空间的pod,如下,default命名空间中没有pod

[root@master demo]# kubectl get ns
NAME                   STATUS   AGE
default                Active   5d23h
kube-node-lease        Active   5d23h
kube-public            Active   5d23h
kube-system            Active   5d23h
kubernetes-dashboard   Active   5d20h
[root@master demo]# kubectl get pod
No resources found in default namespace.
[root@master demo]#

2、指定命名空间查看pod

如下,指定命名空间即查询kube-system命名空间的pod,如下可以看出kube-system命名空间中有许多自带的pod

[root@master demo]# kubectl get ns
NAME                   STATUS   AGE
default                Active   5d23h
kube-node-lease        Active   5d23h
kube-public            Active   5d23h
kube-system            Active   5d23h
kubernetes-dashboard   Active   5d20h
[root@master demo]# kubectl get pod -n kube-system
NAME                             READY   STATUS    RESTARTS   AGE
coredns-558bd4d5db-7vbmq         1/1     Running   0          5d23h
coredns-558bd4d5db-sps22         1/1     Running   0          5d23h
etcd-master                      1/1     Running   0          5d23h
kube-apiserver-master            1/1     Running   0          5d23h
kube-controller-manager-master   1/1     Running   0          5d23h
kube-flannel-ds-cd9qk            1/1     Running   0          5d23h
kube-flannel-ds-gg4jq            1/1     Running   0          5d23h
kube-flannel-ds-n76xj            1/1     Running   0          5d23h
kube-proxy-g4j5g                 1/1     Running   0          5d23h
kube-proxy-h27ms                 1/1     Running   0          5d23h
kube-proxy-tqzjl                 1/1     Running   0          5d23h
kube-scheduler-master            1/1     Running   0          5d23h
[root@master demo]#

二、命令行方式对Pod操作

1、命令行创建pod

如下,先创建dev命名空间,然后创建nginx的pod,使用nginx:latest 镜像,设置端口为80

[root@master demo]# kubectl create namespace dev
namespace/dev created
[root@master demo]# kubectl run nginx --image=nginx:latest --port=80 -n dev
pod/nginx created
[root@master demo]#

2、命令行查询验证创建的pod

如下,查看上面创建的pod的信息

[root@master demo]# kubectl get pod -n dev
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          77s
[root@master demo]# kubectl get pod -n dev -o wide
NAME    READY   STATUS    RESTARTS   AGE   IP            NODE    NOMINATED NODE   READINESS GATES
nginx   1/1     Running   0          85s   10.244.2.16   node2   <none>           <none>
[root@master demo]#

3、命令方式删除创建的pod

[root@master demo]# kubectl delete pod nginx -n dev
pod "nginx" deleted
[root@master demo]# kubectl delete namespace dev
namespace "dev" deleted
[root@master demo]#

三、命令加配置文件方式对Pod操作

1、使用配置文件的方式创建pod

创建pod_nginx.yaml文件,内容如下,即创建一个dev的命名空间以及在dev的命名空间中创建一个nginx的pod

apiVersion: v1
kind: Namespace
metadata:
  name: dev

---
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: dev
spec:
  containers:
  - image: nginx:1.17.1
    name: pod
    ports:
    - name: nginx-port
      containerPort: 80
      protocol: TCP

使用如下命令创建

[root@master demo]# kubectl create -f pod_nginx.yaml
namespace/dev created
pod/nginx created
[root@master demo]#

2、使用配置文件的方式查看

如下,使用配置文件的方式查看创建的资源

[root@master demo]# kubectl get -f pod_nginx.yaml
NAME            STATUS   AGE
namespace/dev   Active   73s

NAME        READY   STATUS    RESTARTS   AGE
pod/nginx   1/1     Running   0          73s
[root@master demo]#

3、使用配置文件的方式删除

如下,使用如下命令将创建的资源删除

[root@master demo]# kubectl delete -f pod_nginx.yaml
namespace/dev unchanged
pod/nginx unchanged
[root@master demo]#

四、 声明式对象配置的方式操作Pod

1、使用apply和配置文件方式创建pod

创建pod_nginx.yaml文件,内容如下,即创建一个dev的命名空间以及在dev的命名空间中创建一个nginx的pod

apiVersion: v1
kind: Namespace
metadata:
  name: dev

---
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: dev
spec:
  containers:
  - image: nginx:1.17.1
    name: pod
    ports:
    - name: nginx-port
      containerPort: 80
      protocol: TCP

使用如下命令创建

[root@master demo]# kubectl apply -f pod_nginx.yaml
namespace/dev created
pod/nginx created
[root@master demo]#

2、使用apply和配置文件的方式对pod进行修改

如下,将pod_nginx.yaml文件中的镜像修改为1.17.3

apiVersion: v1
kind: Namespace
metadata:
  name: dev

---
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: dev
spec:
  containers:
  - image: nginx:1.17.3
    name: pod
    ports:
    - name: nginx-port
      containerPort: 80
      protocol: TCP

然后使用如下命令修改更新

[root@master demo]# kubectl apply -f pod_nginx.yaml
namespace/dev unchanged
pod/nginx configured
[root@master demo]#

3、使用describe命令查看修改状态

如下,使用describe命令查看修改的状态

[root@master demo]# kubectl describe pod nginx -n dev
Name:         nginx
Namespace:    dev
Priority:     0
Node:         node2/192.168.16.42
Start Time:   Sun, 20 Mar 2022 14:43:51 +0800
Labels:       <none>
Annotations:  <none>
Status:       Running
IP:           10.244.2.18
IPs:
  IP:  10.244.2.18
Containers:
  pod:
    Container ID:   docker://9edee9d176b0c6cdda342c161f51ac306211504d897755d7f2a1c874f10530c3
    Image:          nginx:1.17.3
    Image ID:       docker-pullable://nginx@sha256:9688d0dae8812dd2437947b756393eb0779487e361aa2ffbc3a529dca61f102c
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Sun, 20 Mar 2022 14:52:36 +0800
    Last State:     Terminated
      Reason:       Completed
      Exit Code:    0
      Started:      Sun, 20 Mar 2022 14:43:52 +0800
      Finished:     Sun, 20 Mar 2022 14:52:36 +0800
    Ready:          True
    Restart Count:  1
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-rclxs (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  kube-api-access-rclxs:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type    Reason     Age                  From               Message
  ----    ------     ----                 ----               -------
  Normal  Scheduled  9m17s                default-scheduler  Successfully assigned dev/nginx to node2
  Normal  Pulled     9m16s                kubelet            Container image "nginx:1.17.1" already present on machine
  Normal  Created    32s (x2 over 9m16s)  kubelet            Created container pod
  Normal  Started    32s (x2 over 9m16s)  kubelet            Started container pod
  Normal  Killing    32s                  kubelet            Container pod definition changed, will be restarted
  Normal  Pulled     32s                  kubelet            Container image "nginx:1.17.3" already present on machine
[root@master demo]#

4、删除Pod

apply命令不能删除操作,删除Pod还是要使用delete -f,如下:

[root@master demo]# kubectl delete -f pod_nginx.yaml
namespace "dev" deleted
pod "nginx" deleted
[root@master demo]#
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Ubuntu上安装Kubernetes的步骤如下: 1. 首先,确保你的Ubuntu版本为16.04及以上,并且已经安装了Docker。你可以使用以下命令安装Docker: ``` sudo apt-get update sudo apt-get install docker-ce ``` 2. 安装Kubernetes工具。你可以使用以下命令安装Kubernetes的命令行工具kubectl: ``` sudo apt-get update && sudo apt-get install -y apt-transport-https curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubectl ``` 3. 升级内核版本。Kubernetes要求使用的内核版本为4.4.0-116-generic或更高版本。你可以使用以下命令升级内核版本: ``` sudo apt-get update sudo apt-get install -y linux-image-extra-$(uname -r) linux-image-extra-virtual ``` 4. 安装Kubernetes master节点。你可以使用以下命令安装Kubernetes master节点组件: ``` sudo apt-get update && sudo apt-get install -y kubelet kubeadm kubernetes-cni sudo kubeadm init --pod-network-cidr=10.244.0.0/16 ``` 在执行完上述命令后,你将会得到一个类似的输出,其中包含了加入Kubernetes集群的命令。请保存这个输出,你将在后续的步骤中使用它。 5. 安装网络插件。为了使Kubernetes的网络正常工作,你需要安装一个网络插件。常用的网络插件有flannel和Calico。你可以使用以下命令安装flannel网络插件: ``` kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/kube-flannel.yml ``` 6. 加入节点。现在你可以将其他节点加入到Kubernetes集群中。使用之前保存的输出命令,运行类似以下的命令将节点加入到集群中: ``` sudo kubeadm join <master-ip>:<master-port> --token <token> --discovery-token-ca-cert-hash <hash> ``` 其中,`<master-ip>`是Kubernetes master节点的IP地址,`<master-port>`是Kubernetes master节点的端口号,`<token>`和`<hash>`是之前保存的输出中的对应值。 通过按照以上步骤,你可以在Ubuntu上成功安装和配置Kubernetes。请确保在执行任何操作之前仔细阅读并理解官方文档,并根据你的实际需求进行适当的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值