由于网络限制,无法连接google服务器,因此提供ali云额安装方式
Minikube本地安装
Minikube - Kubernetes本地实验环境
Demo
场景 | 目的 |
---|---|
集群状态查看 | 检查集群中节点状态和kube的功能集 |
创建nginx的Deploy | 部署一个nginx的单实例 |
检查Deploy | 查看部署的运行状况 |
服务发现 | 如何从外部访问 |
部署管理 | 水平扩展或收缩实例以及滚动升级和回滚 |
删除资源 | 释放不再需要的资源 |
状态查询
$ minikube status
minikube: Running
cluster: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.102
$ minikube dashboard
查看version
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:17:28Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.0", GitCommit:"fc32d2f3698e36b93322a3465f63a14e9f0eaead", GitTreeState:"clean", BuildDate:"2018-03-26T16:44:10Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
$ kubectl api-versions
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1
apps/v1beta1
apps/v1beta2
authentication.k8s.io/v1
authentication.k8s.io/v1beta1
authorization.k8s.io/v1
authorization.k8s.io/v1beta1
autoscaling/v1
autoscaling/v2beta1
batch/v1
batch/v1beta1
certificates.k8s.io/v1beta1
events.k8s.io/v1beta1
extensions/v1beta1
networking.k8s.io/v1
policy/v1beta1
rbac.authorization.k8s.io/v1
rbac.authorization.k8s.io/v1beta1
storage.k8s.io/v1
storage.k8s.io/v1beta1
v1
查看master状态
$ kubectl cluster-info
Kubernetes master is running at https://192.168.99.102:8443
KubeDNS is running at https://192.168.99.102:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
查看节点
$ kubectl get no
NAME STATUS ROLES AGE VERSION
minikube Ready master 30m v1.10.0
nginx服务创建
$ kubectl run nginx --image=nginx:1.7.9
deployment.apps/nginx created
$ kubectl get deploy
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
nginx 1 1 1 0 31s
$ kubectl describe deploy nginx
Name: nginx
Namespace: default
CreationTimestamp: Tue, 21 Aug 2018 15:01:39 +0800
Labels: run=nginx
Annotations: deployment.kubernetes.io/revision=1
Selector: run=nginx
Replicas: 1 desired | 1 updated | 1 total | 1 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: run=nginx
Containers:
nginx:
Image: nginx:1.7.9
Port:
Host Port:
Environment:
Mounts:
Volumes:
Conditions:
Type Status Reason
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets:
NewReplicaSet: nginx-6bcd55cfd6 (1/1 replicas created)
Events:
Type Reason Age From Message
Normal ScalingReplicaSet 3m deployment-controller Scaled up replica set nginx-6bcd55cfd6 to 1
NewReplicaSet:保证pod的数量
$ kubectl get rs
NAME DESIRED CURRENT READY AGE
nginx-6bcd55cfd6 1 1 1 9m
$ kubectl describe rs
Name: nginx-6bcd55cfd6
Namespace: default
Selector: pod-template-hash=2678117982,run=nginx
Labels: pod-template-hash=2678117982
run=nginx
Annotations: deployment.kubernetes.io/desired-replicas=1
deployment.kubernetes.io/max-replicas=2
deployment.kubernetes.io/revision=1
Controlled By: Deployment/nginx
Replicas: 1 current / 1 desired
Pods Status: 1 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
Labels: pod-template-hash=2678117982
run=nginx
Containers:
nginx:
Image: nginx:1.7.9
Port:
Host Port:
Environment:
Mounts:
Volumes:
Events:
Type Reason Age From Message
Normal SuccessfulCreate 10m replicaset-controller Created pod: nginx-6bcd55cfd6-66cvh
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-6bcd55cfd6-66cvh 1/1 Running 0 13m
$ kubectl describe pod
Name: nginx-6bcd55cfd6-66cvh
Namespace: default
Node: minikube/10.0.2.15
Start Time: Tue, 21 Aug 2018 15:01:39 +0800
Labels: pod-template-hash=2678117982
run=nginx
Annotations:
Status: Running
IP: 172.17.0.4
Controlled By: ReplicaSet/nginx-6bcd55cfd6
Containers:
nginx:
Container ID: docker://479a9343c207b4ed4ff9761a7d7abbfb22c331f7ba6501086481bd931410a6e7
Image: nginx:1.7.9
Image ID: docker-pullable://nginx@sha256:e3456c851a152494c3e4ff5fcc26f240206abac0c9d794affb40e0714846c451
Port:
Host Port:
State: Running
Started: Tue, 21 Aug 2018 15:02:11 +0800
Ready: True
Restart Count: 0
Environment:
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-xg9nx (ro)
Conditions:
Type Status
Initialized True
Ready True
PodScheduled True
Volumes:
default-token-xg9nx:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-xg9nx
Optional: false
QoS Class: BestEffort
Node-Selectors:
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message
Normal Scheduled 13m default-scheduler Successfully assigned nginx-6bcd55cfd6-66cvh to minikube
Normal SuccessfulMountVolume 13m kubelet, minikube MountVolume.SetUp succeeded for volume "default-token-xg9nx"
Normal Pulling 13m kubelet, minikube pulling image "nginx:1.7.9"
Normal Pulled 13m kubelet, minikube Successfully pulled image "nginx:1.7.9"
Normal Created 13m kubelet, minikube Created container
Normal Started 13m kubelet, minikube Started container
$ kubectl logs nginx-6bcd55cfd6-66cvh
$ kubectl exec -it nginx-6bcd55cfd6-66cvh /bin/bash
$ kubectl expose deploy nginx --type=NodePort --name=nginx --port=80
$ kubectl scale deploy nginx --replicas=3
$ kubectl set image deploy nginx nginx=nginx:1.9.1
$ kubectl rollout status deploy nginx
$ kubectl describe depoly nginx
$ kubectl rollout history deploy nginx
相关文章
k8s(Kubernetes)中Pod,Deployment,ReplicaSet,Service之间关系分析