Kubernetes简介

Kubernetes 是一个开源的、用于管理云平台中多个主机上的容器化的应用的调度系统,是一个用于容器应用的自动化部署、弹性伸缩、应用升级以及运维等的开源平台。Kubernetes是一种面向应用的系统,用于降低服务端应用的开发部署和运维成本。

Kubernetes架构

始于编排而超越编排

1. Declare Observe React
2. 一个状态存储
3. 多个控制器

优势

1,最终一致性 2,组合特点 3,面向结果

apiVersion: VX
kind: API-Sla
metadata :
    name :myservice-sla
spec :
    percent : 99%
    latency: 200ms
    cost : x$/h
    selector :
        app: myapp

Kubernetes网络

1,容器之间可以直接互通,不需要 NAT 2,节点可以和容器直接互通,不需要 NAT 3,容器看到的⾃己 IP 应该和其他容器看到的⼀样

CNI(Container Network Interface)
- Flannel - Calico - Contiv
ClusterIP
- Virtual IP
- Iptables

{
    "kind": "Service", 
    "apiVersion": "v1", 
    "metadata": {
        "name": "my-service" 
    },
    "spec": { 
        "selector": {
            "app": "MyApp" 
            },
    "ports": [ 
        {
            "protocol": "TCP", 
            "port": 80, 
            "targetPort": 9376
        } 
    ],    "clusterIP": "10.0.171.239", 
    "type": “LoadBalancer

    } 
}

Flannel

Backend Type
1. udp
2. vxlan
3. host‐gw 4. aws‐vpc

Kubernetes网络故障排查

1.确认同一主机上的pod网络是否互通,否,排查本机网络arp, iptables 2.确认跨主机pod网络是否互通 3.确认dns服务是否正常 4.确认请求Service ClusterIP是否正常(排查Service iptables) 5.确认pod到apiserver请求是否正常 6.确认出pod请求公网是否正常

Kubernetes Volume

apiVersion: v1
kind: Pod
metadata:
    name: test-pd
spec :
    containers :
    - image : jolestar/go-probe
        name : test-container
        volumeMounts :
        - mountPath : /cache I
            name : cache-volume
volumes :
-   name :cache-volume
    emptyDir: {}

gitRepo

volumes:
    ‐ name: git‐volume
        gitRepo:
            repository: "git@xxxx:me/my‐repo.git"
            revision: "22f1d8406d464"

NFS

volumes:
    ‐ name: nfs‐volume
        nfs:
            path: /opt/nfs
            server: nfs.f22

Kubernetes PersistentVolume

Capacity Access Modes ReadWriteOnce ReadOnlyMany ReadWriteMany Mount Options Phase Available Bound Released Failed)

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
    name: pvc
spec:
    storageClassName: storageclass
    persistentVolumeReclaimPolicy: Recycle
    accessModes:
        ‐ ReadWriteOnce
    resources:
     requests:
             storage: 3Gi