Kubernetes-tutorials(五)

  • The tutorials use Katacoda to run a virtual terminal in your web browser that runs Minikube, a small-scale local deployment of Kubernetes that can run anywhere. There's no need to install any software or configure anything; each interactive tutorial runs directly out of your web browser itself.
  • A Kubernetes cluster that handles production traffic should have a minimum of three nodes.
  •  The nodes communicate with the master using the Kubernetes API, which the master exposes. End users can also use the Kubernetes API directly to interact with the cluster.

Module1

  • 查看minikube是否安装

$ minikube version
minikube version: v0.17.1-katacoda

  • 启动集群

$ minikube start
Starting local Kubernetes cluster...

  • 查看客户端及服务端版本信息

$kubectl version
Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"6e937839ac04a38cac63e6a7a306c5d035fe7b0a", GitTreeState:"clean", BuildDate:"2017-09-28T22:57:57Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState:"clean", BuildDate:"1970-01-01T00:00:00Z", GoVersion:"go1.7.1", Compiler:"gc", Platform:"linux/amd64"}

  • 查看集群信息

$ kubectl cluster-info
Kubernetes master is running at http://host01:8080
heapster is running at http://host01:8080/api/v1/namespaces/kube-system/services/heapster/proxy
kubernetes-dashboard is running at http://host01:8080/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy
monitoring-grafana is running at http://host01:8080/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
monitoring-influxdb is running at http://host01:8080/api/v1/namespaces/kube-system/services/monitoring-influxdb/proxy

  • 列出应用可用的节点信息

$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
host01 Ready <none> 4m v1.5.2

Module 2

If the Node hosting an instance goes down or is deleted, the Deployment controller replaces it. This provides a self-healing mechanism to address machine failure or maintenance.

Applications need to be packaged into one of the supported container formats in order to be deployed on Kubernetes

  • 命令用法查询

kubectl

kubectl get nodes --help

  • 查看kubectl是否和集群正常通信

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"6e937839ac04a38cac63e6a7a306c5d035fe7b0a", GitTreeState:"clean", BuildDate:"2017-09-28T22:57:57Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState:"clean", BuildDate:"1970-01-01T00:00:00Z", GoVersion:"go1.7.1", Compiler:"gc", Platform:"linux/amd64"}

  • 查看集群中的节点信息

$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
host01 Ready <none> 6m v1.5.2

  • 在kubernetes上运行第一个应用

$ kubectl run kubernetes-bootcamp --image=docker.io/jocatalin/kubernetes-bootcamp:v1 --port=8080
deployment "kubernetes-bootcamp" created

  • 获取已经部署的应用

$ kubectl get deployments
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
kubernetes-bootcamp 1 1 1 1 2m

  • 运行一个proxy使得应用在外部和私有网络之间的通信

$ kubectl proxy
Starting to serve on 127.0.0.1:8001

  • 通过API获取相关信息

$ curl http://localhost:8001/version
{
"major": "1",
"minor": "5",
"gitVersion": "v1.5.2",
"gitCommit": "08e099554f3c31f6e6f07b448ab3ed78d0520507",
"gitTreeState": "clean",
"buildDate": "1970-01-01T00:00:00Z",
"goVersion": "go1.7.1",
"compiler": "gc",
"platform": "linux/amd64"

  • 通过proxy实现容器信息的查询

$ export POD_NAME=$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{" "}}{{end}}')
$ echo Name of the Pod: $POD_NAME
Name of the Pod: kubernetes-bootcamp-390780338-xgkq1
$ curl http://localhost:8001/api/v1/proxy/namespaces/default/pods/$POD_NAME/
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-390780338-xgkq1 | v=1

原文地址:https://www.cnblogs.com/cf532088799/p/7791039.html