kubernetes的笔记

kubectl cluster-info

使用Minikube通过以下命令启用dashboard minikube addons enable dashboard

创建一个deployment kubectl create deployment first-deployment –image=katacoda/docker-http-server

查看pod kubectl get pods

通过部署以下YAML定义,使Kubernetes仪表板可用。仅应在Katacoda上使用。

kubectl apply -f /opt/kubernetes-dashboard.yaml

apiVersion: v1
kind: Namespace
metadata:
  labels:
    addonmanager.kubernetes.io/mode: Reconcile
    kubernetes.io/minikube-addons: dashboard
  name: kubernetes-dashboard
  selfLink: /api/v1/namespaces/kubernetes-dashboard
spec:
  finalizers:
  - kubernetes
status:
  phase: Active
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: kubernetes-dashboard
  name: kubernetes-dashboard-katacoda
  namespace: kubernetes-dashboard
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 9090
    nodePort: 30000
  selector:
    k8s-app: kubernetes-dashboard
  type: NodePort

要查看dashboard启动的进度 kubectl get pods -n kubernetes-dashboard -w

查看kubeadm版本 kubeadm version -o short

kubectl run http –image=katacoda/docker-http-server:latest –replicas=1

kubectl get deployment

kubectl describe deployment http

绑定NodeIP的端口8000,–target-port=80这个是pod的80端口,映射到192.168.99.101的8000端口 kubectl expose deployment http –external-ip=”192.168.99.101” –port=8000 –target-port=80

访问NodeIP curl http://192.168.99.101:8000 katacoda.com

也可以把创建和绑定端口的命令合在一起 kubectl run http –image=katacoda/docker-http-server:latest –replicas=1 –port=80 –hostport=8000

查看docker minikube ssh docker ps|grep httpexposed 注意里面有个 registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 这个pause容器是给其他容器提供网络命名空间,提高网络性能。

扩展容器 kubectl scale –replicas=3 deployment http 查看容器状态 kubectl get pods 查看服务,可以看到pod都自动添加到负载均衡服务中 kubectl describe svc http 访问测试 curl http://192.168.99.101:8000

使用kubectl apply可以更新 kubectl apply -f deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: webapp1
spec:
  replicas: 4
  selector:
    matchLabels:
      app: webapp1
  template:
    metadata:
      labels:
        app: webapp1
    spec:
      containers:
      - name: webapp1
        image: katacoda/docker-http-server:latest
        ports:
        - containerPort: 80

获取指定service的clusterIP: kubectl get svc/http -o go-template=’’

获取指定pod的NAME: kubectl get pods –selector=”name=bad-frontend” –output=jsonpath={.items..metadata.name}

使服务在群集外部可用的另一种方法是通过External IPs externalIPs:

  • 172.17.0.12

在公有云中运行时,可以配置公网IP,作为LoadBalancer

pod=$(kubectl get pods –selector=”name=frontend” –output=jsonpath={.items..metadata.name} 这里的name=frontend是标签labels kubectl exec $pod – /usr/bin/curl -s localhost/unhealthy

CRI-O

FFwechat FFalipay