提交 8c7a1158 编写于 作者: 阳明的博客's avatar 阳明的博客

修改gitlab ci runner

上级 170e16d2
......@@ -133,10 +133,13 @@ gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
EOF
```
> **注意:**由于阿里云的源将依赖进行了更改,如果你需要安装 1.10.0 版本的集群的话,需要使用下面的命令:
> **注意:**由于阿里云的源将依赖进行了更改,如果你需要安装 1.10.0 版本的集群的话,需要使用下面的命令分别安装
```shell
$ yum makecache fast && yum install -y kubelet-1.10.0-0 kubeadm-1.10.0-0 kubectl-1.10.0-0
$ yum makecache fast
$ yum install -y kubelet-1.10.0-0
$ yum install -y kubectl-1.10.0-0
$ yum install -y kubeadm-1.10.0-0
```
正常情况我们可以都能顺利安装完成上面的文件。
......@@ -341,6 +344,11 @@ This node has joined the cluster:
Run 'kubectl get nodes' on the master to see this node join the cluster.
```
如果出现下面的错误信息:[discovery] Failed to request cluster info, will try again: [Get https://10.151.30.27:6443/api/v1/namespaces/kube-public/configmaps/cluster-info: x509: certificate has expired or is not yet valid],应该是 master 和 node 之间时间不同步造成的,执行 ntp 时间同步后,重新 init、join 即可。
如果 join 的时候出现下面的错误信息:[ERROR CRI]: unable to check if the container runtime at "/var/run/dockershim.sock" is running: fork/exec /usr/bin/crictl -r /var/run/dockershim.sock info: no such file or directory,这个是因为 cri-tools 版本造成的错误,可以卸载掉即可:`yum remove cri-tools`。
我们可以看到该节点已经加入到集群中去了,然后我们把 master 节点的`~/.kube/config`文件拷贝到当前节点对应的位置即可使用 kubectl 命令行工具了。
```shell
$ kubectl get nodes
......
......@@ -4,10 +4,29 @@ Kubernetes Dashboard 是 k8s集群的一个 WEB UI管理工具,代码托管在
## 安装:
直接使用官方的配置文件安装即可:
```shell
$ wget https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
$ wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
```
为了测试方便,我们将`Service`改成`NodePort`类型,注意 YAML 中最下面的 Service 部分新增一个`type=NodePort`
```yaml
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kube-system
spec:
ports:
- port: 443
targetPort: 8443
type: NodePort
selector:
k8s-app: kubernetes-dashboard
```
为了测试方便,我们将`Service`改成`NodePort`类型,然后直接部署新版本的`dashboard`即可。
然后直接部署新版本的`dashboard`即可:
```shell
$ kubectl create -f kubernetes-dashboard.yaml
```
......
......@@ -115,7 +115,7 @@ data:
python: "django"
```
chart 的名称和版本都没有正确被渲染,这是因为他们不在我们定义的模板范围内,当命名模板被渲染时,它会接收由 template 调用时传入的作用域,有我们我们这里并没有传入对应的作用域,因此模板中我们无法调用到 .Chart 对象,要解决也非常简单,我们只需要在 template 后面加上作用域范围即可:
chart 的名称和版本都没有正确被渲染,这是因为他们不在我们定义的模板范围内,当命名模板被渲染时,它会接收由 template 调用时传入的作用域,由于我们这里并没有传入对应的作用域,因此模板中我们无法调用到 .Chart 对象,要解决也非常简单,我们只需要在 template 后面加上作用域范围即可:
```yaml
apiVersion: v1
kind: ConfigMap
......
......@@ -43,7 +43,7 @@ monitoring Active 35d
> 了解更多 Elasticsearch 集群脑裂问题,可以查看文档[https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html#split-brain](https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html#split-brain)
一个关键点是您应该射在参数`discover.zen.minimum_master_nodes=N/2+1`,其中`N`是 Elasticsearch 集群中符合主节点的节点数,比如我们这里3个节点,意味着`N`应该设置为2。这样,如果一个节点暂时与集群断开连接,则另外两个节点可以选择一个新的主节点,并且集群可以在最后一个节点尝试重新加入时继续运行,在扩展 Elasticsearch 集群时,一定要记住这个参数。
一个关键点是您应该设置参数`discover.zen.minimum_master_nodes=N/2+1`,其中`N`是 Elasticsearch 集群中符合主节点的节点数,比如我们这里3个节点,意味着`N`应该设置为2。这样,如果一个节点暂时与集群断开连接,则另外两个节点可以选择一个新的主节点,并且集群可以在最后一个节点尝试重新加入时继续运行,在扩展 Elasticsearch 集群时,一定要记住这个参数。
首先创建一个名为 elasticsearch 的无头服务,新建文件 elasticsearch-svc.yaml,文件内容如下:
```yaml
......
......@@ -95,7 +95,7 @@ data:
REGISTER_NON_INTERACTIVE: "true"
REGISTER_LOCKED: "false"
METRICS_SERVER: "0.0.0.0:9100"
CI_SERVER_URL: "http://git.qikqiak.com/ci"
CI_SERVER_URL: "http://gitlab.kube-ops.svc.cluster.local/ci"
RUNNER_REQUEST_CONCURRENCY: "4"
RUNNER_EXECUTOR: "kubernetes"
KUBERNETES_NAMESPACE: "kube-ops"
......@@ -119,7 +119,7 @@ metadata:
namespace: kube-ops
```
要注意`CI_SERVER_URL`对应的值需要指向我们的 Gitlab 实例的 URL,并加上`/ci`( http://git.qikqiak.com/ci )。此外还添加了一些构建容器运行的资源限制,我们可以自己根据需要进行更改即可。
要注意`CI_SERVER_URL`对应的值需要指向我们的 Gitlab 实例的 URL(可以是外网地址,也可以是 Kubernetes 集群内部的 Service DNS 地址,因为 Runner 也是运行在 Kubernetes 集群中的),并加上`/ci`( http://gitlab.kube-ops.svc.cluster.local/ci )。此外还添加了一些构建容器运行的资源限制,我们可以自己根据需要进行更改即可。
> 注意:在向 ConfigMap 添加新选项后,需要删除 GitLab CI Runner Pod。因为我们是使用 `envFrom`来注入上面的这些环境变量而不是直接使用`env`的(envFrom 通过将环境变量放置到`ConfigMaps`或`Secrets`来帮助减小清单文件。
......@@ -454,6 +454,7 @@ subjects:
name: gitlab
namespace: gitlab
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
```
......
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: elasticsearch
spec:
selector:
matchLabels:
component: elasticsearch
template:
metadata:
labels:
component: elasticsearch
spec:
containers:
- name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:6.2.1
env:
- name: discovery.type
value: single-node
ports:
- containerPort: 9200
name: http
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: elasticsearch
labels:
component: elasticsearch
spec:
type: NodePort
selector:
component: elasticsearch
ports:
- name: http
port: 9200
protocol: TCP
\ No newline at end of file
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: kibana
spec:
selector:
matchLabels:
run: kibana
template:
metadata:
labels:
run: kibana
spec:
containers:
- name: kibana
image: docker.elastic.co/kibana/kibana:6.2.1
env:
- name: ELASTICSEARCH_URL
value: http://elasticsearch:9200
- name: XPACK_SECURITY_ENABLED
value: "true"
ports:
- containerPort: 5601
name: http
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: kibana
labels:
run: kibana
spec:
type: NodePort
selector:
run: kibana
ports:
- name: http
port: 5601
protocol: TCP
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册