Rancher安裝 - CentOS7(Docker)環境

Rancher安裝 - CentOS7(Docker)環境

 

 對於開發和測試環境,咱們建議經過運行單個Docker容器來安裝Rancher。在此安裝場景中,您將在單個Linux主機上安裝Docker,而後使用單個Docker容器在主機上部署Rancher。html

 

準備好 Linux 系統,文中使用CentOS7爲例,參考:http://www.javashuo.com/article/p-xavbtfeh-gc.html,(IP地址爲:192.168.122.129node

安裝好Docker,參考:http://www.javashuo.com/article/p-gkcvdedl-gk.htmlnginx

Rancher 官網:https://www.rancher.cn/web

Rancher 官方中文文檔:https://www.rancher.cn/docs/rancher/v2.x/cn/overview/docker

 

本文使用默認自簽名證書方式安裝shell

docker run -d --restart=unless-stopped \
-p 8089:80 -p 8443:443 \
rancher/rancher:latest

 

 

 打開網址:https://192.168.122.199:8443json

 

 

 

修改密碼:默認密碼:admin,本文調整爲:123456ubuntu

 

 

 

 

 

切換中文顯示api

 

 

 

 

 

 添加集羣bash

選擇CUSTOM–添加主機自建Kubernetes集羣,一樣,按照本身需求調整配置。

 

 

 

下一部

 

 

 

複製步驟2中的命令,在CentOS 的SSH終端運行。

 

[root@localhost ~]# sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.2.8 --server https://192.168.122.199:8443 --token z7nt2rskktntx49fdzq9lg46ssx6r54sj2jdsgd4mjpgc2c2rjl6nk --ca-checksum 87fcf9b031e622484a0c4e4774b87f9eb854702ce1970f02d94be0e441cd316b --etcd --controlplane --worker
Unable to find image 'rancher/rancher-agent:v2.2.8' locally
v2.2.8: Pulling from rancher/rancher-agent
35c102085707: Already exists 
251f5509d51d: Already exists 
8e829fe70a46: Already exists 
6001e1789921: Already exists 
357cc14e23eb: Pull complete 
1a45097802d6: Pull complete 
767c96a0eb35: Pull complete 
2d7f44528c06: Pull complete 
03c89d0b79d9: Pull complete 
9cf93329bea9: Pull complete 
Digest: sha256:6c1e84e208b87912683d1c68c80476d48150480a7f8819e8931c063492621d70
Status: Downloaded newer image for rancher/rancher-agent:v2.2.8
9c9c5c136daa053514f649aa05d60ecde30c79a32a7472bd81ba21cff2faa826
[root@localhost ~]# 

  

 


 操做完畢後,等待新添加的集羣狀態變爲active便可。

 

 

 完成!

 

   

配置完成後的容器及運行狀態:

[root@mestest ~]# docker ps -a
CONTAINER ID        IMAGE                                  COMMAND                  CREATED              STATUS                          PORTS                                         NAMES
74c4658cc577        d499bdb8fd09                           "run.sh"                 28 seconds ago       Up 28 seconds                                                                 k8s_cluster-register_cattle-cluster-agent-855bf76cf6-66z75_cattle-system_a7a86e39-05c5-11ea-8035-000c296c6b53_0
921939ef51cc        2817cb463960                           "/bin/sh -c 'kube-ap…"   28 seconds ago       Up 28 seconds                                                                 k8s_kube-api-auth_kube-api-auth-z589p_cattle-system_a7b2bc77-05c5-11ea-8035-000c296c6b53_0
25142482ba6c        d499bdb8fd09                           "run.sh"                 28 seconds ago       Up 28 seconds                                                                 k8s_agent_cattle-node-agent-686s5_cattle-system_a7adc118-05c5-11ea-8035-000c296c6b53_0
68d7ac8e3421        rancher/pause:3.1                      "/pause"                 28 seconds ago       Up 28 seconds                                                                 k8s_POD_kube-api-auth-z589p_cattle-system_a7b2bc77-05c5-11ea-8035-000c296c6b53_0
50ba57028c6e        rancher/pause:3.1                      "/pause"                 28 seconds ago       Up 28 seconds                                                                 k8s_POD_cattle-node-agent-686s5_cattle-system_a7adc118-05c5-11ea-8035-000c296c6b53_0
a76c24570529        rancher/pause:3.1                      "/pause"                 28 seconds ago       Up 28 seconds                                                                 k8s_POD_cattle-cluster-agent-855bf76cf6-66z75_cattle-system_a7a86e39-05c5-11ea-8035-000c296c6b53_0
a6a3b860ec21        b5af743e5984                           "/server"                41 seconds ago       Up 36 seconds                                                                 k8s_default-http-backend_default-http-backend-5954bd5d8c-799mk_ingress-nginx_9d257e84-05c5-11ea-8035-000c296c6b53_0
8ca319299aec        rancher/metrics-server                 "/metrics-server --k…"   42 seconds ago       Up 42 seconds                                                                 k8s_metrics-server_metrics-server-7f6bd4c888-jkj5g_kube-system_9a22f82d-05c5-11ea-8035-000c296c6b53_0
c2a09e70d2d5        2b37f252629b                           "/entrypoint.sh /ngi…"   46 seconds ago       Up 45 seconds                                                                 k8s_nginx-ingress-controller_nginx-ingress-controller-zrzh4_ingress-nginx_9d22ae83-05c5-11ea-8035-000c296c6b53_0
eb204e14d3b9        rancher/pause:3.1                      "/pause"                 46 seconds ago       Up 41 seconds                                                                 k8s_POD_default-http-backend-5954bd5d8c-799mk_ingress-nginx_9d257e84-05c5-11ea-8035-000c296c6b53_0
2c64b74f6d63        rancher/pause:3.1                      "/pause"                 46 seconds ago       Up 46 seconds                                                                 k8s_POD_nginx-ingress-controller-zrzh4_ingress-nginx_9d22ae83-05c5-11ea-8035-000c296c6b53_0
6fbb144837ed        4c0a26e51da8                           "kubectl apply -f /e…"   47 seconds ago       Exited (0) 46 seconds ago                                                     k8s_rke-ingress-controller-pod_rke-ingress-controller-deploy-job-fbtlc_kube-system_9c7fa095-05c5-11ea-8035-000c296c6b53_0
460e9298ad3c        rancher/pause:3.1                      "/pause"                 47 seconds ago       Exited (0) 41 seconds ago                                                     k8s_POD_rke-ingress-controller-deploy-job-fbtlc_kube-system_9c7fa095-05c5-11ea-8035-000c296c6b53_0
82c37cddb8d6        33813c948942                           "/cluster-proportion…"   49 seconds ago       Up 49 seconds                                                                 k8s_autoscaler_coredns-autoscaler-5d5d49b8ff-jrq9c_kube-system_981e01f2-05c5-11ea-8035-000c296c6b53_0
f92cbad990ba        rancher/pause:3.1                      "/pause"                 50 seconds ago       Up 49 seconds                                                                 k8s_POD_coredns-autoscaler-5d5d49b8ff-jrq9c_kube-system_981e01f2-05c5-11ea-8035-000c296c6b53_0
a0b7c6e746e3        eb516548c180                           "/coredns -conf /etc…"   50 seconds ago       Up 50 seconds                                                                 k8s_coredns_coredns-bdffbc666-mktpq_kube-system_977c0924-05c5-11ea-8035-000c296c6b53_0
a2db10462d84        rancher/pause:3.1                      "/pause"                 51 seconds ago       Up 50 seconds                                                                 k8s_POD_coredns-bdffbc666-mktpq_kube-system_977c0924-05c5-11ea-8035-000c296c6b53_0
53b038001c19        rancher/pause:3.1                      "/pause"                 51 seconds ago       Up 51 seconds                                                                 k8s_POD_metrics-server-7f6bd4c888-jkj5g_kube-system_9a22f82d-05c5-11ea-8035-000c296c6b53_0
5b565ace71c9        4c0a26e51da8                           "kubectl apply -f /e…"   52 seconds ago       Exited (0) 51 seconds ago                                                     k8s_rke-metrics-addon-pod_rke-metrics-addon-deploy-job-r6jn4_kube-system_997e226a-05c5-11ea-8035-000c296c6b53_0
aea8ea24112a        rancher/pause:3.1                      "/pause"                 52 seconds ago       Exited (0) 51 seconds ago                                                     k8s_POD_rke-metrics-addon-deploy-job-r6jn4_kube-system_997e226a-05c5-11ea-8035-000c296c6b53_0
fc242c944169        4c0a26e51da8                           "kubectl apply -f /e…"   57 seconds ago       Exited (0) 56 seconds ago                                                     k8s_rke-coredns-addon-pod_rke-coredns-addon-deploy-job-stv9k_kube-system_967d0c94-05c5-11ea-8035-000c296c6b53_0
c3732bc8a473        rancher/pause:3.1                      "/pause"                 57 seconds ago       Exited (0) 55 seconds ago                                                     k8s_POD_rke-coredns-addon-deploy-job-stv9k_kube-system_967d0c94-05c5-11ea-8035-000c296c6b53_0
828849e2fc46        f0fad859c909                           "/opt/bin/flanneld -…"   57 seconds ago       Up 56 seconds                                                                 k8s_kube-flannel_canal-smpk9_kube-system_94c607d0-05c5-11ea-8035-000c296c6b53_0
90486321f98b        a89b45f36d5e                           "start_runit"            58 seconds ago       Up 57 seconds                                                                 k8s_calico-node_canal-smpk9_kube-system_94c607d0-05c5-11ea-8035-000c296c6b53_0
1dc8a38d6732        d531d047a4e2                           "/install-cni.sh"        About a minute ago   Exited (0) 59 seconds ago                                                     k8s_install-cni_canal-smpk9_kube-system_94c607d0-05c5-11ea-8035-000c296c6b53_0
d18247f1db7d        rancher/pause:3.1                      "/pause"                 About a minute ago   Up About a minute                                                             k8s_POD_canal-smpk9_kube-system_94c607d0-05c5-11ea-8035-000c296c6b53_0
a23eb19a2dd0        4c0a26e51da8                           "kubectl apply -f /e…"   About a minute ago   Exited (0) About a minute ago                                                 k8s_rke-network-plugin-pod_rke-network-plugin-deploy-job-vx48l_kube-system_937aa654-05c5-11ea-8035-000c296c6b53_0
8bd9bf4e09f1        rancher/pause:3.1                      "/pause"                 About a minute ago   Exited (0) About a minute ago                                                 k8s_POD_rke-network-plugin-deploy-job-vx48l_kube-system_937aa654-05c5-11ea-8035-000c296c6b53_0
86ad42265145        rancher/hyperkube:v1.14.6-rancher1     "/opt/rke-tools/entr…"   About a minute ago   Up About a minute                                                             kube-proxy
235b5136473f        rancher/hyperkube:v1.14.6-rancher1     "/opt/rke-tools/entr…"   About a minute ago   Up About a minute                                                             kubelet
7bab5c460bc8        rancher/hyperkube:v1.14.6-rancher1     "/opt/rke-tools/entr…"   About a minute ago   Up About a minute                                                             kube-scheduler
0756f3551016        rancher/hyperkube:v1.14.6-rancher1     "/opt/rke-tools/entr…"   About a minute ago   Up About a minute                                                             kube-controller-manager
34be692185c8        rancher/hyperkube:v1.14.6-rancher1     "/opt/rke-tools/entr…"   About a minute ago   Up About a minute                                                             kube-apiserver
5448fb4f1905        rancher/rke-tools:v0.1.42              "/bin/bash"              About a minute ago   Created                                                                       service-sidekick
5890c4de1897        rancher/coreos-etcd:v3.3.10-rancher1   "/usr/local/bin/etcd…"   About a minute ago   Up About a minute                                                             etcd
44c7967b5e2b        rancher/rke-tools:v0.1.42              "/bin/bash"              About a minute ago   Exited (0) About a minute ago                                                 cluster-state-deployer
faec16034a3f        rancher/rancher-agent:v2.2.8           "run.sh -- share-roo…"   About a minute ago   Exited (0) About a minute ago                                                 share-mnt
34341fe7c26d        rancher/rancher:latest                 "entrypoint.sh"          5 minutes ago        Up 5 minutes                    0.0.0.0:8089->80/tcp, 0.0.0.0:8443->443/tcp   elastic_kalam

 

 

 

 

 

 

注:

如出現 此問題:

 

關閉防火牆後 拉鏡像:

docker run -d rancher/rke-tools:v0.1.42

 

 kubernetes須要服務器 至少2G內存

 

 

防火牆

apt install firewalld

systemctl stop firewalld.service

systemctl disable firewalld.service

firewall-cmd --state

若是顯示not running,則關閉成功

 

 

 

部署項目示例:

新增部署服務,配置以下

Docker鏡像由Jenkins打包生成,參考:http://www.javashuo.com/article/p-yqjlmqho-hd.html

注意項目中的dockerfile文件中的 端口也寫成 80 與此處端口映射配置一致。

dockerfile以下:

FROM markorregistry.cn:8085/aspnetcoreruntime:latest
WORKDIR /app
COPY . .
EXPOSE 80
ENTRYPOINT ["dotnet", "MarkorMES.API.Plan.dll"]

 

 

 

 

  部署完成!

 可打開頁面查看 http://192.168.122.199:30005/

 

 

Rancher由Jenkins觸發調用API 自動部署

Rancher 生成 API KEY

 

 

 

 

 

 

 

 

記錄下生成的 token:

 API訪問地址:https://192.168.122.199:8443/v3

 Access Key(用戶名):token-lgwv7

 Secret Key(密碼):dvrkw5498mhlpczf8zn2sl99bbfgq69qhcfl2wblt4qtgsrhdh6fws

 Bearer Token:token-lgwv7:dvrkw5498mhlpczf8zn2sl99bbfgq69qhcfl2wblt4qtgsrhdh6fws

 

 

 

 

 

 

查看API調用格式。

 

 

 

 

 

點擊Edit按鈕, 可配置API調用參數(默認當前項目全部參數)。點擊Show Request,生成調用語句。

 

 

 

 

 

 

查看 cURL command line 中的語句。 

curl 補充好key內容,可直接寫在 Jenkins的Shell中。

Curl內容以下: 

curl -k -u "token-lgwv7:dvrkw5498mhlpczf8zn2sl99bbfgq69qhcfl2wblt4qtgsrhdh6fws" \
-X PUT \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
    "annotations": {
        "cattle.io/timestamp": "2019-11-21T00:58:54Z",
        "workload.cattle.io/state": "{\"bWVzdGVzdA==\":\"c-gqr2n:m-8e84afdc263f\"}"
    },
    "containers": [{
        "allowPrivilegeEscalation": false,
        "image": "mestest.cn:8085/proj_netcore2:'$var'",
        "imagePullPolicy": "IfNotPresent",
        "initContainer": false,
        "name": "mycoreweb",
        "ports": [{
            "containerPort": 80,
            "dnsName": "mycoreweb-nodeport",
            "kind": "NodePort",
            "name": "8089tcp300051",
            "protocol": "TCP",
            "sourcePort": 30005,
            "type": "/v3/project/schemas/containerPort"
        }],
        "privileged": false,
        "readOnly": false,
        "resources": {
            "type": "/v3/project/schemas/resourceRequirements"
        },
        "restartCount": 0,
        "runAsNonRoot": false,
        "stdin": true,
        "stdinOnce": false,
        "terminationMessagePath": "/dev/termination-log",
        "terminationMessagePolicy": "File",
        "tty": true,
        "type": "/v3/project/schemas/container"
    }],
    "created": "2019-11-13T05:21:50Z",
    "creatorId": null,
    "deploymentConfig": {
        "maxSurge": 1,
        "maxUnavailable": 0,
        "minReadySeconds": 0,
        "progressDeadlineSeconds": 600,
        "revisionHistoryLimit": 10,
        "strategy": "RollingUpdate"
    },
    "deploymentStatus": {
        "availableReplicas": 1,
        "conditions": [{
            "lastTransitionTime": "2019-11-20T12:05:09Z",
            "lastTransitionTimeTS": 1574251509000,
            "lastUpdateTime": "2019-11-20T12:05:09Z",
            "lastUpdateTimeTS": 1574251509000,
            "message": "Deployment has minimum availability.",
            "reason": "MinimumReplicasAvailable",
            "status": "True",
            "type": "Available"
        }, {
            "lastTransitionTime": "2019-11-21T00:43:28Z",
            "lastTransitionTimeTS": 1574297008000,
            "lastUpdateTime": "2019-11-21T00:58:56Z",
            "lastUpdateTimeTS": 1574297936000,
            "message": "ReplicaSet \"mycoreweb-74797bc87\" has successfully progressed.",
            "reason": "NewReplicaSetAvailable",
            "status": "True",
            "type": "Progressing"
        }],
        "observedGeneration": 28,
        "readyReplicas": 1,
        "replicas": 1,
        "type": "/v3/project/schemas/deploymentStatus",
        "unavailableReplicas": 0,
        "updatedReplicas": 1
    },
    "dnsConfig": {
        "type": "/v3/project/schemas/podDNSConfig"
    },
    "dnsPolicy": "ClusterFirst",
    "gids": [],
    "hostAliases": [],
    "hostIPC": false,
    "hostNetwork": false,
    "hostPID": false,
    "imagePullSecrets": [],
    "labels": {
        "workload.user.cattle.io/workloadselector": "deployment-default-mycoreweb"
    },
    "name": "mycoreweb",
    "namespaceId": "default",
    "nodeId": "",
    "ownerReferences": [],
    "paused": false,
    "projectId": "c-gqr2n:p-4zqh9",
    "publicEndpoints": [],
    "readinessGates": [],
    "restartPolicy": "Always",
    "scale": 1,
    "schedulerName": "default-scheduler",
    "scheduling": {
        "node": {
            "nodeId": "c-gqr2n:m-8e84afdc263f"
        }
    },
    "selector": {
        "matchLabels": {
            "workload.user.cattle.io/workloadselector": "deployment-default-mycoreweb"
        },
        "type": "/v3/project/schemas/labelSelector"
    },
    "state": "active",
    "sysctls": [],
    "terminationGracePeriodSeconds": 30,
    "transitioning": "no",
    "transitioningMessage": "",
    "uuid": "7ede4f06-05d5-11ea-b16e-000c296c6b53",
    "volumes": [],
    "workloadAnnotations": {
        "deployment.kubernetes.io/revision": "11",
        "field.cattle.io/creatorId": "user-257tk"
    },
    "workloadLabels": {
        "cattle.io/creator": "norman",
        "workload.user.cattle.io/workloadselector": "deployment-default-mycoreweb"
    },
    "workloadMetrics": []
}' \
'https://192.168.122.199:8443/v3/project/c-gqr2n:p-4zqh9/workloads/deployment:default:mycoreweb'

 

 

 

注意 需給 curl 命令增長 -k 

不然會報以下錯誤:

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
Build step 'Execute shell' marked build as failure

 注意修改一下鏡像文件名稱,每次不能重複,不然不能從新部署。

文中使用的時間戳做爲鏡像後綴,具體參考Jenkins的配置。

 

當Jenkins從新構建時,會自動調用Rancher的API,使Rancher項目從新部署。

Jenkins 的具體配置請看:http://www.javashuo.com/article/p-yqjlmqho-hd.html

完成。

 

 

 

 

 

引用:https://rancher.com/docs/rancher/v2.x/en/installation/single-node/

引用:https://www.rancher.cn/what-is-rancher/how-is-rancher-built/

相關文章
相關標籤/搜索