kubernetes常用的资源

创建pod资源

pod是最小资源单位.
任何的一个k8s资源都可以由yml清单文件来定义

k8s yaml的主要组成

apiVersion: v1  api版本
kind: pod   资源类型
metadata:   属性
spec:       详细

master节点编写pod.yaml文档
vi k8s_pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: web
spec:
  containers:
    - name: nginx
      image: 10.0.0.11:5000/nginx:1.13
      ports:
        - containerPort: 80

创建pod资源并查看pod资源

kubectl create -f k8s_pod.yml
kubectl get pod 
kubectl describe pod nginx

node节点:根据镜像的pod-infrastructure:latest image的具体地址进行填写进行填写

vim /etc/kubernetes/kubelet
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=10.0.0.11:5000/pod-infrastructure:latest"
systemctl restart kubelet.service

查看是否启动成功

kubectl get pod -o  wide
 kubectl describe pod nginx

pod和容器的关系:
为什么创建一个pod资源,需要至少启动两个容器?
pod基础容器 实现k8s的高级功能+
nginx容器 实现业务功能

pod资源中,多个业务容器的端口不能冲突

pod资源:至少由两个容器组成,pod基础容器和业务容器组成(最多1+4)

只要创建一个pod资源,都会启动一个pod基础容器+pod资源中的业务容器

curl -I 172.18.78.2 访问pod的ip地址,pod里面的nginx可以被访问,nginx容器和pod-infrastructure
172.18.78.2 究竟是哪一个容器的ip地址?
172.18.78.2是pod基础容器的ip
nginx容器和pod基础容器共用ip地址

ReplicationController资源
rc:保证指定数量的pod始终存活,rc通过标签选择器来关联pod
启动5个相同的pod,pod 5个副本

apiVersion: v1
kind: ReplicationController
metadata:
  name: nginx
spec:
  replicas: 5  #副本5
  selector:
    app: myweb
  template:  #模板
    metadata:
      labels:
        app: myweb
    spec:
      containers:
      - name: myweb
        image: 10.0.0.11:5000/nginx:1.13
        ports:
        - containerPort: 80

启动一个rc 并查看rc信息

 kubectl   create -f  k8s_rc.yaml
 kubectl  get  rc

删除一个 又会创建一个新的

kubectl   delete  pod  nginx-9kstr

每一个pod名字,必须唯一
k8s 不断的检查不可用的节点,驱逐pod

停止node节点的服务

 systemctl stop  kubelet.service

删除节点

kubectl  delete node   10.0.0.12

会在另外的节点上新建 一直保持rc始终运行

[root@k8s-master rc]# kubectl   get pod -o wide
NAME          READY     STATUS    RESTARTS   AGE       IP            NODE
nginx-1zgwx   1/1       Running   0          32s       172.18.10.8   10.0.0.13
nginx-kt27z   1/1       Running   0          8m        172.18.10.5   10.0.0.13
nginx-qq1sc   1/1       Running   0          32s       172.18.10.7   10.0.0.13
nginx-st72b   1/1       Running   0          8m        172.18.10.4   10.0.0.13
nginx-tvf09   1/1       Running   0          32s       172.18.10.6   10.0.0.13
test          2/2       Running   14         7h        172.18.10.2   10.0.0.13

查看标签pod的

 kubectl   get pod -o wide   --show-labels

查看节点使用那些标签
kubectl get rc -o wide

在这里插入代码片

修改pod 标签为myweb 会出现少了一个,删除了最年轻的

kubectl   edit   pod  test

宏观世界,pod都是同一秒创建
微观世界,pod创建相隔几毫米

kubectl   create  -f   xxx.yaml   创建资源
kubectl   get  pod|rc             查看某一个资源列表
kubectl  describe  pod  nginx      查看某一个具体资源的详细信息
kubectl  delete   pod  nginx        删除某一个具体资源
 或者kubectl delete  -f  xxx.yaml
kubectl  edit  pod   nginx          编辑某一个资源的配置文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章