1. 创建pod资源

pod是最小的资源单位

任何一个k8s资源都可以有yml清单文件来定义

k8s yaml的主要组成

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

编写第一个yml文件

vim 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
构建容器
kubectl create -f k8s_pod.yaml
构建成失败,此处有坑


解决方法:
没有pod-infrastructure-latest.tar.gz镜像文件
上传镜像文件,导入,并上传到私有仓库

在node节点上修改配置文件

vim /etc/kubernetes/kubelet
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container image=10.0.0.11:5000/rhel7/pod-infrastructure:latest"

重启服务
systemctl restart kubelet.service


再次构建
kubectl create -f k8s_pod.yaml

查看构建
kubectl get pod
kubectl describe pod nginx

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

pod配置文件2:

apiVersion: v1
kind: Pod
metadata:
  name: test
  labels:
    app: web
spec:
  containers:
    - name: nginx
      image: 10.0.0.11:5000/nginx:1.13
      ports:
        - containerPort: 80
    - name: busybox
      image: 10.0.0.11:5000/busybox:latest
      command: ["sleep","1000"]

2. ReplicationController 资源

rc:保证指定数量的pod始终存活,rc通过via哦前选择器来关联pod
k8s资源的常见操作: 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

创建一个rc

vim k8s_rc.yml

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
kubectl create -f k8s_rc.yml
查看rc
kubectl get rc

查看构建的容器全部信息
kubectl get pod -o wide

修改yml文件实现滚动升级
rc的滚动升级 新建一个nginx-rc1.15.yaml

升级 kubectl rolling-update nginx -f nginx-rc1.15.yml --update-period=10s

前提:私有仓库必须要有nginx1.15的镜像

秒级回滚
回滚 kubectl rolling-update nginx2 -f nginx-rc.yml --update-period=1s

12-23 14:18