一、创建

1、创建名称空间

不指定名称空间就是default

[root@master ~]# kubectl create namespace zy
namespace/zy created

在这里插入图片描述

2、创建 pod

kubectl run命令
kubectl run NAME --image=image [–env=“key=value”] [–port=port] [–replicas=replicas]
[–dry-run=bool] [–overrides=inline-json] [–command] – [COMMAND] [args…] [options]

[root@master ~]# kubectl create deployment nginx-test --image=nginx --port=80 --replicas=3 -n zy
                                                     控制器          pod名称      镜像名称      暴露端口    副本集数量     指定名称空间

在K8S v1.18.0以后,–replicas已弃用 ,推荐用 deployment 创建 pods
1.18之前

[root@master ~]# kubectl run nginx-test --image=nginx --port=80 --replicas=3 -n zy

在这里插入图片描述
在这里插入图片描述
可进入容器查看信息和事件

[root@master ~]# kubectl describe pod nginx-test-6c88c44876-jdqvs -n zy

在这里插入图片描述
查看pod的IP和所有master的IP

[root@master ~]# kubectl get endpoints -A

在这里插入图片描述
查看所有资源信息

[root@master ~]#  kubectl get all -A

在这里插入图片描述
在这里插入图片描述
删除其中一个pod

[root@master ~]#  kubectl get pod -n zy

在这里插入图片描述

[root@master ~]# kubectl delete pod nginx-test-6c88c44876-jdqvs -n zy

在这里插入图片描述
在这里插入图片描述
可以发现,pod是重建一个新的然后再删掉需要删除的pod
如果要完全删除只能删除控制器

[root@master ~]# kubectl delete deploy/nginx-test -n zy

在这里插入图片描述

在这里插入图片描述

二、发布

kubectl expose (-f FILENAME | TYPE NAME) [–port=port] [–protocol=TCP|UDP|SCTP]
[–target-port=number-or-name] [–name=name] [–external-ip=external-ip-of-service] [–type=type]

[root@master ~]# kubectl expose deployment nginx-test -n zy --port=80 --target-port=80 --name=nginx-service --type=NodePort

在这里插入图片描述

[root@master ~]# kubectl get pod,svc -n zy

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

1、开启ipvs

在node节点上操作

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1

在这里插入图片描述

sysctl -p

执行以下脚本

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

上面脚本创建了的/etc/sysconfig/modules/ipvs.modules文件,保证在节点重启后能自动加载所需模块。 使用lsmod | grep -e ip_vs -e nf_conntrack_ipv4命令查看是否已经正确加载所需的内核模块。

lsmod | grep -e ipvs -e nf_conntrack_ipv4

在这里插入图片描述
接下来还需要确保各个节点上已经安装了ipset软件包。 为了便于查看ipvs的代理规则,最好安装一下管理工具ipvsadm

yum install ipset ipvsadm -y

修改ConfigMap的kube-system/kube-proxy中的config.conf,mode: “ipvs”

[root@master ~]# kubectl edit  configmap -n kube-system  kube-proxy

在这里插入图片描述
对于Kubernetes来说,可以直接将这三个Pod删除之后,会自动重建。

[root@master ~]# kubectl get pods -n kube-system|grep proxy
[root@master ~]# kubectl get pod -n kube-system | grep kube-proxy | awk '{system("kubectl delete pod "$1" -n kube-system")}'

等到proxy的pod重建之后
在node节点上

[root@node01 ~]# ipvsadm -L -n

在这里插入图片描述

2、查看日志

[root@master ~]# kubectl logs nginx-test-6c88c44876-6np7f -n zy

实时查看10条

[root@master ~]# kubectl logs -f --tail 10 nginx-test-6c88c44876-6np7f -n zy

在这里插入图片描述

三、更新

在这里插入图片描述
先打开监控

[root@master ~]# watch -n 1 kubectl get pod -n zy

在这里插入图片描述

[root@master ~]# kubectl set image deploy/nginx-test nginx=nginx:1.14 -n zy
deployment.apps/nginx-test image updated

开始逐一更新
在这里插入图片描述
更新完成
在这里插入图片描述
在这里插入图片描述
方法二
先在master上打开监控
在这里插入图片描述
然后编辑控制器

在这里插入图片描述
在这里插入图片描述
保存退出后监控显示已在更新
在这里插入图片描述
更新完毕
在这里插入图片描述
在这里插入图片描述

四、回滚

支持的控制器
Valid resource types include:

  • deployments
  • daemonsets
  • statefulsets
    允许的操作
    Available Commands:
    history 显示 rollout 历史
    pause 标记提供的 resource 为中止状态
    resume 继续一个停止的 resource
    status 显示 rollout 的状态
    undo 撤销上一次的 rollout
[root@master ~]# kubectl rollout undo deploy/nginx-test -n zy
deployment.apps/nginx-test rolled back

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、删除

需要删除pod,svc还有node上的jmage

[root@master ~]# kubectl delete deploy/nginx-test -n zy
deployment.apps "nginx-test" deleted
[root@master ~]# kubectl get svc -n zy
NAME            TYPE       CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
nginx-service   NodePort   10.1.46.250   <none>        80:31587/TCP   17h
[root@master ~]# kubectl delete svc nginx-service -n zy
service "nginx-service" deleted

在这里插入图片描述
注意,如果是1.18以上版本,如果用kubectl apply -f ***.yaml创建的pod

kubectl delete -f ***.yaml时只删除deploy,如果要删除pod还需要删除rs(副本集控制器)

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐