一、创建一个项目
创建 kubectl run命令
[root@master01 ~]# kubectl run nginx --image=nginx:latest --port=80 --replicas=3
kubectl run --generator=deployment/apps.v1beta1 is DEPRECATED and will be removed in a future version. Use kubectl create instead.
deployment.apps/nginx-deployment created
# deployment 无状态化的
# port=80 对服务内部暴露的端口
# replicas=3 副本数为3
[root@master01 ~]# kubectl get ns # 查询命名空间,创建的时候不指定命名空间默认创建在 default
NAME STATUS AGE
default Active 40h
kube-public Active 40h
kube-system Active 40h
[root@master01 ~]# kubectl get pods -n default # 查询pod
NAME READY STATUS RESTARTS AGE
nginx-deployment-5477945587-7xnpv 1/1 Running 0 4m11s
nginx-deployment-5477945587-gj97r 1/1 Running 0 4m11s
nginx-deployment-5477945587-rz42l 1/1 Running 0 4m11s
[root@master01 ~]# kubectl get pods -o wide # 查询pod创建位置节点
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
nginx-deployment-5477945587-7xnpv 1/1 Running 0 5m53s 172.17.30.4 20.0.0.12
nginx-deployment-5477945587-gj97r 1/1 Running 0 5m53s 172.17.66.3 20.0.0.13
nginx-deployment-5477945587-rz42l 1/1 Running 0 5m53s 172.17.66.2 20.0.0.13
[root@master01 ~]# kubectl get service # 查询对内暴露端口
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.0.0.1 443/TCP 40h
[root@master01 ~]# kubectl get all # 查看所有资源
NAME READY STATUS RESTARTS AGE
pod/nginx-deployment-5477945587-7xnpv 1/1 Running 0 8m41s
pod/nginx-deployment-5477945587-gj97r 1/1 Running 0 8m41s
pod/nginx-deployment-5477945587-rz42l 1/1 Running 0 8m41s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.0.0.1 443/TCP 40h
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
deployment.apps/nginx 1 1 1 1 5h42m
deployment.apps/nginx-deployment 3 3 3 3 8m41s
NAME DESIRED CURRENT READY AGE
replicaset.apps/nginx-dbddb74b8 1 1 1 5h42m
replicaset.apps/nginx-deployment-5477945587 3 3 3 8m41s
二、发布nginx service提供负载均衡的功能
[root@master01 ~]# kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort
service/nginx-service exposed
# expose 暴露
# deployment 调度资源
# nginx 名称为nginx
# --port=80 pod 端口
# --target-port=80 容器中的端口
# --type=NodePort 暴露形式为 NodePort
[root@master01 ~]# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.0.0.1 443/TCP 41h
nginx-service NodePort 10.0.0.125 80:49831/TCP 4m20s # 产生内部地址,对外暴露端口为49831
[root@master01 ~]# kubectl get pods -o wide # 网络状态详细信息
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
nginx-7697996758-5clwz 1/1 Running 0 10m 172.17.30.2 20.0.0.12
nginx-7697996758-gq2f7 1/1 Running 0 10m 172.17.30.4 20.0.0.12
nginx-7697996758-hr6h4 1/1 Running 0 10m 172.17.66.2 20.0.0.13
[<