google-k8s部署试验

版本

k8s 1.5

docker version
Client:
Version:        1.12.6
API version:    1.24
Package version: docker-1.12.6-32.git88a4867.el7.centos.x86_64
Go version:      go1.7.4
Git commit:      88a4867/1.12.6
Built:          Mon Jul  3 16:02:02 2017
OS/Arch:        linux/amd64

Server:
Version:        1.12.6
API version:    1.24
Package version: docker-1.12.6-32.git88a4867.el7.centos.x86_64
Go version:      go1.7.4
Git commit:      88a4867/1.12.6
Built:          Mon Jul  3 16:02:02 2017
OS/Arch:        linux/amd64

部署etcd

-bash-4.1$ more start.sh 
TOKEN=zhangqi-etcd
CLUSTER_STATE=new
NAME_1=zhangqi-151
NAME_2=zhangqi-26
NAME_3=zhangqi-150
HOST_1=192.168.6.151
HOST_2=192.168.6.26
HOST_3=192.168.6.150
CLUSTER=${NAME_1}=http://${HOST_1}:2380,${NAME_2}=http://${HOST_2}:2380,${NAME_3}=http://${HOST_3}:2380

THIS_NAME=${NAME_2}
THIS_IP=${HOST_2}
./etcd --data-dir=data.etcd --name ${THIS_NAME} \
        --initial-advertise-peer-urls http://${THIS_IP}:2380 --listen-peer-urls http://${THIS_IP}:2380 \
        --advertise-client-urls http://${THIS_IP}:2379 --listen-client-urls http://${THIS_IP}:2379 \
        --initial-cluster ${CLUSTER} \
        --initial-cluster-state ${CLUSTER_STATE} --initial-cluster-token ${TOKEN}
-bash-4.1$ more monitor.sh
export ETCDCTL_API=3
HOST_1=192.168.6.151
HOST_2=192.168.6.26
HOST_3=192.168.6.150

ENDPOINTS=$HOST_1:2379,$HOST_2:2379,$HOST_3:2379
##./etcdctl --endpoints=$ENDPOINTS member list
./etcdctl --write-out=table --endpoints=$ENDPOINTS endpoint status
#./etcdctl --endpoints=$ENDPOINTS endpoint health

curl -s http://192.168.6.26:2379/v2/keys | /slview/test/zhangqi/jq-linux64 
{
  "action": "get",
  "node": {
    "dir": true,
    "nodes": [
      {
        "key": "/syspara",
        "dir": true,
        "modifiedIndex": 52,
        "createdIndex": 52
      },
      {
        "key": "/shconfig",
        "dir": true,
        "modifiedIndex": 17,
        "createdIndex": 17
      },
      {
        "key": "/test",
        "dir": true,
        "modifiedIndex": 20,
        "createdIndex": 20
      },
      {
        "key": "/zy",
        "dir": true,
        "modifiedIndex": 30,
        "createdIndex": 30
      }
    ]
  }
}

部署docker搭建私服

#docker私有库
docker run -d -p 5000:5000 --restart=always --name="docker-image" --hostname="docker-image" -v /root/test/docker/image:/tmp/registry -e REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/registry registry
docker run -d -p 5000:5000 --restart=always --name="docker-image" --hostname="docker-image" -v /root/test/docker/image:/var/lib/registry registry

#pod通信
docker pull docker.io/kubernetes/pause

#存入本地私有库
docker tag f9d5de079539 docker-image:5000/pause-2017:3.0
docker rmi docker-image:5000/pause-2017:3.0
docker tag f9d5de079539 192.168.6.50:5000/pause-2017:3.0
修改私有库ip地址重启docker
docker push 192.168.6.50:5000/pause-2017:3.0


#查看
docker search 192.168.6.50:5000

[root@localhost image]# curl -XGET http://192.168.6.50:5000/v2/pause-2017/tags/list
{"name":"pause-2017","tags":["3.0"]}
[root@localhost image]# curl -XGET http://192.168.6.50:5000/v2/_catalog
{"repositories":["pause-2017"]}

systemctl status docker.service

[root@localhost k8s]# docker images 
REPOSITORY                              TAG                IMAGE ID            CREATED            SIZE
docker.io/registry                      latest              751f286bc25e        6 weeks ago        33.19 MB
192.168.6.50:5000/kubernetes-bootcamp  v1                  8fafd8af70e9        13 months ago      211.3 MB
192.168.6.50:5000/pause-2017            3.0                f9d5de079539        3 years ago        239.8 kB
[root@localhost k8s]# 

部署k8s的master

##master
./kube-apiserver --address=0.0.0.0 \
                --insecure-port=8080 \
                --service-cluster-ip-range='10.254.0.0/16' \
                --log_dir=/var/log/kube  \
                --kubelet_port=10250 \
                --v=0 \
                --logtostderr=true \ 
                --etcd_servers=http://192.168.6.151:2379 \
                --allow_privileged=false
                
                
./kube-controller-manager  --v=0 \
                          --logtostderr=true \
                          --log_dir=/var/log/kube  \
                          --machines=192.168.6.51  \
                          --master=127.0.0.1:8080
                          
                          
./kube-scheduler  --master='127.0.0.1:8080'  \
                  --v=0  \
                  --log_dir=/var/log/kube  \
                  --logtostderr=true 
                  
                  
kube-apiserver --address=0.0.0.0  --insecure-port=8080 --service-cluster-ip-range='10.254.0.0/16' --log_dir=/root/test/k8s/kube --kubelet_port=10250 --v=0 --logtostderr=false --etcd_servers=http://192.168.6.26:2379 --allow_privileged=false  >> /root/test/k8s/kube-apiserver.log 2>&1 &

kube-controller-manager  --v=0 --logtostderr=false --log_dir=/root/test/k8s/kube --master='127.0.0.1:8080' >> /root/test/k8s/kube-controller-manager 2>&1 &

kube-scheduler  --master='127.0.0.1:8080' --v=0  --log_dir=/root/test/k8s/kube  >> /root/test/k8s/kube-scheduler.log 2>&1 &

https://192.168.6.50:6443/healthz

kubectl get componentstatuses
NAME                STATUS    MESSAGE              ERROR
scheduler            Healthy  ok                  
controller-manager  Healthy  ok                  
etcd-0              Healthy  {"health": "true"}  

#etcd
-bash-4.1$ curl -s http://192.168.6.26:2379/v2/keys | /slview/test/zhangqi/jq-linux64 
curl: /usr/local/lib/libidn.so.11: no version information available (required by /usr/local/lib/libcurl.so.4)
{
  "action": "get",
  "node": {
    "dir": true,
    "nodes": [
      {
        "key": "/registry",
        "dir": true,
        "modifiedIndex": 24587,
        "createdIndex": 24587
      },
      {
        "key": "/shconfig",
        "dir": true,
        "modifiedIndex": 17,
        "createdIndex": 17
      },
      {
        "key": "/test",
        "dir": true,
        "modifiedIndex": 20,
        "createdIndex": 20
      },
      {
        "key": "/zy",
        "dir": true,
        "modifiedIndex": 30,
        "createdIndex": 30
      },
      {
        "key": "/syspara",
        "dir": true,
        "modifiedIndex": 52,
        "createdIndex": 52
      }
    ]
  }
}
-bash-4.1$ curl -s http://192.168.6.26:2379/v2/keys/registry | /slview/test/zhangqi/jq-linux64 
curl: /usr/local/lib/libidn.so.11: no version information available (required by /usr/local/lib/libcurl.so.4)
{
  "action": "get",
  "node": {
    "key": "/registry",
    "dir": true,
    "nodes": [
      {
        "key": "/registry/services",
        "dir": true,
        "modifiedIndex": 24596,
        "createdIndex": 24596
      },
      {
        "key": "/registry/clusterrolebindings",
        "dir": true,
        "modifiedIndex": 24603,
        "createdIndex": 24603
      },
      {
        "key": "/registry/events",
        "dir": true,
        "modifiedIndex": 24610,
        "createdIndex": 24610
      },
      {
        "key": "/registry/serviceaccounts",
        "dir": true,
        "modifiedIndex": 24611,
        "createdIndex": 24611
      },
      {
        "key": "/registry/ranges",
        "dir": true,
        "modifiedIndex": 24587,
        "createdIndex": 24587
      },
      {
        "key": "/registry/clusterroles",
        "dir": true,
        "modifiedIndex": 24588,
        "createdIndex": 24588
      },
      {
        "key": "/registry/namespaces",
        "dir": true,
        "modifiedIndex": 24592,
        "createdIndex": 24592
      }
    ],
    "modifiedIndex": 24587,
    "createdIndex": 24587
  }
}
-bash-4.1$  curl -s http://192.168.6.26:2379/v2/keys/registry | ./jq-linux64  
curl: /usr/local/lib/libidn.so.11: no version information available (required by /usr/local/lib/libcurl.so.4)
{
  "action": "get",
  "node": {
    "key": "/registry",
    "dir": true,
    "nodes": [
      {
        "key": "/registry/ranges",
        "dir": true,
        "modifiedIndex": 24587,
        "createdIndex": 24587
      },
      {
        "key": "/registry/clusterrolebindings",
        "dir": true,
        "modifiedIndex": 24603,
        "createdIndex": 24603
      },
      {
        "key": "/registry/replicasets",
        "dir": true,
        "modifiedIndex": 27098,
        "createdIndex": 27098
      },
      {
        "key": "/registry/pods",
        "dir": true,
        "modifiedIndex": 27099,
        "createdIndex": 27099
      },
      {
        "key": "/registry/clusterroles",
        "dir": true,
        "modifiedIndex": 24588,
        "createdIndex": 24588
      },
      {
        "key": "/registry/namespaces",
        "dir": true,
        "modifiedIndex": 24592,
        "createdIndex": 24592
      },
      {
        "key": "/registry/services",
        "dir": true,
        "modifiedIndex": 24596,
        "createdIndex": 24596
      },
      {
        "key": "/registry/events",
        "dir": true,
        "modifiedIndex": 24610,
        "createdIndex": 24610
      },
      {
        "key": "/registry/serviceaccounts",
        "dir": true,
        "modifiedIndex": 24611,
        "createdIndex": 24611
      },
      {
        "key": "/registry/minions",
        "dir": true,
        "modifiedIndex": 25942,
        "createdIndex": 25942
      },
      {
        "key": "/registry/deployments",
        "dir": true,
        "modifiedIndex": 27097,
        "createdIndex": 27097
      }
    ],
    "modifiedIndex": 24587,
    "createdIndex": 24587
  }
}


#slave
./kube-proxy  --logtostderr=false  \
              --v=0  \
              --master=http://192.168.6.50:8080 
              
              
./kubelet  --logtostderr=false  \
          --v=0  \
          --allow-privileged=false  \
          --log_dir=/var/log/kube  \
          --address=0.0.0.0  \
          --port=10250  \
          --hostname_override=192.168.6.51  \
          --api_servers=http://192.168.6.50:8080
          
          
kube-proxy  --logtostderr=false --v=0 --master=http://192.168.6.50:8080  >>  /root/test/k8s/kube-proxy.log 2>&1 &

kubelet  --logtostderr=false --v=0 --allow-privileged=false  --log_dir=/root/test/k8s/kube  --address=0.0.0.0  --port=10250  --hostname_override=192.168.6.51  --api_servers=http://192.168.6.50:8080 --pod-infra-container-image=192.168.6.50:5000/pause-2017:3.0 >>/root/test/k8s/kube-kubelet.log 2>&1 &

使用k8s做服务部署

docker pull 192.168.6.50:5000/kubernetes-bootcamp:v1
docker pull jocatalin/kubernetes-bootcamp:v2
docker tag b6556396ebd4 192.168.6.50:5000/kubernetes-bootcamp:v2

#开启服务
kubectl run kubernetes-bootcamp --image=192.168.6.50:5000/kubernetes-bootcamp:v1 --port=8080
kubectl run kubernetes-bootcamp --image=docker.io/jocatalin/kubernetes-bootcamp:v1 --port=8080
kubectl run kubernetes-bootcamp --image=jocatalin/kubernetes-bootcamp:v1 --port=8080
#默认docker.io下载镜像
[root@hadoop1 k8s]# docker images 
REPOSITORY                                TAG                IMAGE ID            CREATED            SIZE
docker.io/jocatalin/kubernetes-bootcamp  v2                  b6556396ebd4        13 months ago      211.3 MB
192.168.6.50:5000/kubernetes-bootcamp    v1                  8fafd8af70e9        13 months ago      211.3 MB
docker.io/jocatalin/kubernetes-bootcamp  v1                  8fafd8af70e9        13 months ago      211.3 MB
192.168.6.50:5000/pause-2017              3.0                f9d5de079539        3 years ago        239.8 kB
[root@hadoop1 k8s]# 

[root@localhost k8s]# kubectl get pods
NAME                                  READY    STATUS        RESTARTS  AGE
kubernetes-bootcamp-264884655-wfcfd  1/1      Terminating  0          8m

#删除部署
kubectl delete deployment kubernetes-bootcamp 

#进入容器
kubectl exec -ti kubernetes-bootcamp-264884655-wfcfd bash

#部署服务
kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080

#升级
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=192.168.6.50:5000/kubernetes-bootcamp:v2

#扩展
kubectl scale deployments/kubernetes-bootcamp --replicas=3

#回退
kubectl rollout undo deployments --to-revision=2

#查看ep,多pods启动proxy
kubectl get ep
NAME                  ENDPOINTS          AGE
kubernetes            192.168.6.50:6443  21h
kubernetes-bootcamp  172.17.0.2:8080    13m

你可能感兴趣的:(google-k8s部署试验)