【K8S实战】-超详细教程(一)

【K8S实战】-超详细教程(一)

1、环境准备

K8S环境搭建可以看这篇文章【k8s搭建(超详细,保姆级教程)】,这里就不过多赘述了,有疑问欢迎留言。

2、K8S资源创建

K8S的资源创建一般有2种:

  • 使用命令创建
  • 使用Yaml文件创建
    详情请参考K8S官方文档

3、Namespace(命名空间)

主要用于资源访问的隔离。

3.1、命令操作Namespace

使用命令方式实现对命名空的创建与删除。

查看当前k8s的所有命名空间
[root@k8s-m ~]# kubectl get namespace
NAME              STATUS   AGE
default           Active   4d
kube-node-lease   Active   4d
kube-public       Active   4d
kube-system       Active   4d

创建命名空间,namespace可使用缩写的ns代替
[root@k8s-m ~]# kubectl create namespace test-ns
namespace/test-ns created
[root@k8s-m ~]# 

再次查看我们创建的命名空间,发现我们已经成功创建test-ns
[root@k8s-m ~]# kubectl get ns
NAME              STATUS   AGE
default           Active   4d
kube-node-lease   Active   4d
kube-public       Active   4d
kube-system       Active   4d
test-ns           Active   95s
[root@k8s-m ~]# 

删除命名空间
[root@k8s-m ~]# kubectl delete ns test-ns
namespace "test-ns" deleted
[root@k8s-m ~]# 

再次查看发现命名空间已被删除
[root@k8s-m ~]# kubectl get ns
NAME              STATUS   AGE
default           Active   4d
kube-node-lease   Active   4d
kube-public       Active   4d
kube-system       Active   4d
[root@k8s-m ~]# 

3.2、使用Yaml操作Namespace

创建一个名为ns.yaml的文件,文件内容如下:

apiVersion: v1
kind: Namespace
metadata:
  name: test-ns

使用Yaml方式对命名空进行创建与删除。

创建操作kubectl apply -f xxx.yaml意思是使用xxx.yaml文件创建资源,
可以使用kubectl --help查看一级说明,kubectl apply --help二级说明
[root@k8s-m ns]# kubectl apply -f ns.yaml #意思使用ns.yaml创建资源
namespace/test-ns created
[root@k8s-m ns]# 

删除操作
[root@k8s-m ns]# kubectl delete -f ns.yaml 
namespace "test-ns" deleted
[root@k8s-m ns]# 

4、pod

pod是K8S运行的最小单位。可以理解类似Docker的最小运行单位容器,只不过K8S是在Docker容器的基础上再封装一层,也就是说一个pod可以运行一个或多个容器(后面我会实验)。

4.1、命令操作pod

接下来实践下命令对pod进行操作,这里我们使用nginx进行实践。

查看当前运行的pod
[root@k8s-m ns]# kubectl get pod -A -owide
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE     IP               NODE     NOMINATED NODE   READINESS GATES
kube-system   calico-kube-controllers-6d9cdcd744-4vb6b   1/1     Running   1          4d      192.168.29.6     k8s-m    <none>           <none>
kube-system   calico-node-rpbwg                          1/1     Running   1          4d      200.168.88.130   k8s-m    <none>           <none>
kube-system   calico-node-t96v2                          1/1     Running   1          4d      200.168.88.132   k8s-n1   <none>           <none>
kube-system   coredns-5897cd56c4-55v75                   1/1     Running   1          4d      192.168.29.4     k8s-m    <none>           <none>
kube-system   coredns-5897cd56c4-tf8cb                   1/1     Running   1          4d      192.168.29.5     k8s-m    <none>           <none>
kube-system   etcd-k8s-m                                 1/1     Running   1          4d      200.168.88.130   k8s-m    <none>           <none>
kube-system   kube-apiserver-k8s-m                       1/1     Running   1          4d      200.168.88.130   k8s-m    <none>           <none>
kube-system   kube-controller-manager-k8s-m              1/1     Running   2          4d      200.168.88.130   k8s-m    <none>           <none>
kube-system   kube-proxy-96bsb                           1/1     Running   0          6h45m   200.168.88.132   k8s-n1   <none>           <none>
kube-system   kube-proxy-wxkmr                           1/1     Running   0          6h44m   200.168.88.130   k8s-m    <none>           <none>
kube-system   kube-scheduler-k8s-m                       1/1     Running   3          4d      200.168.88.130   k8s-m    <none>           <none>
[root@k8s-m ns]# 

创建一个名为nginx的pod
[root@k8s-m ns]# kubectl run nginx --image=nginx
pod/nginx created
[root@k8s-m ns]# 
再次查看发现nginx已经启动成功
[root@k8s-m ns]# kubectl get pod -A -owide
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE     IP               NODE     NOMINATED NODE   READINESS GATES
default       nginx                                      1/1     Running   0          28s     192.168.215.72   k8s-n1   <none>           <none>
......
kube-system   kube-scheduler-k8s-m                       1/1     Running   3          4d      200.168.88.130   k8s-m    <none>           <none>

[root@k8s-m ns]# 
k8s说成功,但我们还是验证下是否是真的成功,结果发现是成功了。
[root@k8s-m ns]# curl 192.168.215.72
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html {
   
    color-scheme: light dark; }
body {
   
    width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值