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
![]() |
![]() |