參考教程:https://www.kubernetes.org.cn/3808.htmlhtml
先刪除舊版本dockernode
$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
建立mysql-rc.yamllinux
apiVersion: v1 kind: ReplicationController metadata: name: mysql labels: name: mysql spec: replicas: 1 selector: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql ports: - containerPort: 3306 env: - name: MYSQL_ROOT_PASSWORD value: "123456"
yaml的格式很是嚴格,冒號後面必須加空格,不能使用tab鍵製表符,必須使用空格web
建立rcredis
kubectl create -f mysql-rc.yaml
查看rcsql
kubectl get rc
查看poddocker
kubectl get pods
刪除rccentos
kubectl delete -f mysql-rc.yaml
查看節點api
kubectl get nodes
查看node詳細信息
kubectl describe node 127.0.0.1
建立一個webapp-rc.yaml
apiVersion: v1 kind: ReplicationController metadata: name: webapp spec: replicas: 2 template: metadata: name: webapp labels: app: webapp spec: containers: - name: webapp image: tomcat ports: - containerPort: 8080
運行
kubectl create -f webapp-rc.yaml
這裏一開始運行3個master,默認master不運行pod
這裏看到4/2是由於以前開啓了node4節點,兩個pod都運行在node4上,以後關閉了node4節點
讓master也參與運行pod
kubectl taint nodes --all node-role.kubernetes.io/master-
能夠看到以前分配在node4上的pod已經運行在node1和node3上了
獲取Pod的IP地址
kubectl get pods -l app=webapp -o yaml | grep podIP
能夠直接經過這兩個Pod的IP地址和端口訪問Tomcat服務
curl 10.244.1.2:8080
建立service
kubectl expose rc webapp
查看
kubectl get service
在dashboard查看
訪問10.99.120.114:8080
除了使用expose命令,還能夠經過配置文件定義service
apiVersion: v1 kind: Service metadata: name: webapp spec: ports: - port: 8081 targetPort: 8080 selector: app: webapp
將service的端口映射到物理機已供集羣外部訪問
apiVersion: v1 kind: Service metadata: name: webapp spec: type: NodePort ports: - port: 8081 targetPort: 8080 nodePort: 8081 selector: app: webapp
建立一個redis-master
apiVersion: v1 kind: Pod metadata: name: redis-master labels: app: redis-master spec: containers: - name: redis-master image: redis ports: - containerPort: 6379 hostNetWork: true
啓動後查看
使用客戶端鏈接測試
Kubernetes 從 1.3 版本起, DNS 是內置的服務,經過插件管理器 集羣插件 自動被啓動。
查看全部服務
kubectl get svc --namespace=kube-system
能夠看到dns
建立 busybox.yaml 文件,內容以下:
apiVersion: v1 kind: Pod metadata: name: busybox namespace: default spec: containers: - image: busybox command: - sleep - "3600" imagePullPolicy: IfNotPresent name: busybox restartPolicy: Always
而後,用該文件建立一個 Pod:
kubectl create -f busybox.yaml
等這個Pod運行後執行以下 nslookup 查詢:
kubectl exec -ti busybox -- nslookup kubernetes.default
新增一個redis服務
apiVersion: v1 kind: Service metadata: name: redis-master labels: name: redis-master spec: type: NodePort ports: - port: 6380 targetPort: 6379 nodePort: 30002 selector: app: redis-master
建立服務
點擊名稱能夠看到詳細
使用客戶端鏈接測試
查看服務
kubectl get services
經過服務名查找
kubectl exec busybox -- nslookup redis-master
查看context
kubectl config view
在瀏覽器打開https://192.168.112.186:6443/
打開https://192.168.112.186:6443/api/v1 便可看到API接口