Skip to content

Commit

Permalink
manageviakubectl
Browse files Browse the repository at this point in the history
  • Loading branch information
A-Ethan committed Jul 16, 2019
1 parent b66c20d commit 55bd535
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 47 deletions.
8 changes: 4 additions & 4 deletions log/elastic_filebeat_kibana_solution.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@

### 一、部署Elasticsearch

#### 1关于Elasticsearch
#### 1. 关于Elasticsearch

Elasticsearch(ES)是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。Elasticsearch还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,ES能够横向扩展至数以百计的服务器存储以及处理PB级的数据。可以在极短的时间内存储、搜索和分析大量的数据。通常作为具有复杂搜索场景情况下的核心发动机

#### 2环境要求
#### 2. 环境要求

Elasticsearch运行时要求vm.max_map_count内核参数必须大于262144,因此开始之前需要确保这个参数正常调整过。
```
sysctl -w vm.max_map_count=262144
```
也可以在ES的的编排文件中增加一个initContainer来修改内核参数,但这要求kublet启动的时候必须添加了--allow-privileged参数,uk8s默认开启了该参数,在后面的示例中采用initContainer的方式。

#### 3ES节点角色
#### 3. ES节点角色

ES的节点Node可以分为几种角色:

Expand All @@ -32,7 +32,7 @@ Trible node,为了做集群整合用的。

对于单节点的Node,默认是master-eligible和data,对于多节点的集群,需要根据需求仔细规划每个节点的角色。

#### 4Elasticsearch部署
#### 4. Elasticsearch部署

为了方便演示,我们把本文所有的对象资源都放置在一个名为 elk 的 namespace 下面,所以我们需要添加创建一个 namespace:
```
Expand Down
27 changes: 13 additions & 14 deletions manageviakubectl/connectviakubectl.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
====安装及配置kubectl=====

{{indexmenu_n>2}}
## 安装及配置kubectl

本文主要演示如何在UCloud云主机上安装配置kubectl并管理Kubernetes集群,集群Master节点已默认安装kubectl工具,如果你仅需在Master节点做一些简单测试,请跳过此环节;

Expand All @@ -14,7 +13,7 @@

###一、安装kubectl

1.下载安装包,我们下载V1.13.5的kubectl安装包,其他版本请前往[官网下载](https://kubernetes.io/docs/setup/release/notes/)
1. 下载安装包,我们下载V1.13.5的kubectl安装包,其他版本请前往[官网下载](https://kubernetes.io/docs/setup/release/notes/)

```
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.13.5/bin/linux/amd64/kubectl
Expand All @@ -27,12 +26,12 @@ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s htt
```

2.添加执行权限
2. 添加执行权限
```
chmod +x ./kubectl
```
3.移至工作路径
3. 移至工作路径

```
sudo mv ./kubectl /usr/local/bin/kubectl
Expand All @@ -47,37 +46,37 @@ Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.0", GitCom
**备注**:如果您需要在ubuntu或其他linux发行版安装kubectl,亦或使用yum安装,可以参见[官方文档](https://kubernetes.io/docs/tasks/tools/install-kubectl/)


###二、获取并配置集群凭证
### 二、获取并配置集群凭证

你可以通过UK8S Console、SCP、API三种途径获取您创建的集群凭证。

备注:集群内访问无需凭证,可直接访问。

**1、通过Console获取集群凭证**
1. 通过Console获取集群凭证

点击进入到<集群详情页>,点击“集群凭证”
{{ :compute:uk8s:manageviakubectl:kubeconfig.png?nolink&600 |}}
![](/images/manageviakubectl/kubeconfig.png)

将集群信息复制保存到~/.kube/config文件下即可
{{ :compute:uk8s:manageviakubectl:kubeconfig2.png?nolink&600 |}}
![](/images/manageviakubectl/kubeconfig2.png)


**2、通过SCP从Master节点下载集群凭证到本地**
2. 通过SCP从Master节点下载集群凭证到本地

首先点击进入集群详情页面,获取任意一台Master节点的IP,然后在本地机器执行以下命令:

<code shell>
```
scp root@YOURMASTERIP:~/.kube/config ~/.kube/config
</code>
```



###三、访问集群
你可以执行以下命令来验证kubectl是否可以成功访问集群信息;

<code>
```
# kubectl cluster-info
</code>
```

###四、设置命令自动补全

Expand Down
14 changes: 7 additions & 7 deletions manageviakubectl/createpvc.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
=====创建PVC====
{{indexmenu_n>3}}
## 创建PVC

当前存储卷的类型支持SSD、SATA UDISK,UFS即将支持,敬请期待。

###创建StorageClass
### 创建StorageClass

<code yaml storageclass.yml>
```
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
Expand All @@ -14,12 +14,12 @@ provisioner: ucloud/udisk
parameters:
diskCategory: cloud_efficiency
type: ssd
</code>
```


###创建一个存储卷声明并Mount到Pod
### 创建一个存储卷声明并Mount到Pod

<code yaml ds.yml>
```
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
Expand Down Expand Up @@ -50,6 +50,6 @@ spec:
- name: test
persistentVolumeClaim:
claimName: test-pvc-claim
</code>
```

备注:受UDisk产品限制,PVC最小为20GB,步长为10GB。
8 changes: 4 additions & 4 deletions manageviakubectl/createservice.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
====创建Service====
{{indexmenu_n>4}}
## 创建Service

###创建一个类型为LoadBalancer的Service,将MYSECRET换成自定义的SecretName即可。
### 创建一个类型为LoadBalancer的Service,将MYSECRET换成自定义的SecretName即可。

<code>
```
apiVersion: v1
kind: Service
Expand Down Expand Up @@ -33,6 +33,6 @@ spec:
- containerPort: 80
imagePullSecrets:
- name: MYSECRET
</code>
```

系统会自动生成一个ULB,UK8S同时还支持配置ULB的各种参数,详见[service](../service/annotations)
29 changes: 14 additions & 15 deletions manageviakubectl/intro_of_kubectl.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
======kubectl命令行简介=====
{{indexmenu_n>1}}
## kubectl命令行简介


kubectl是一个用于操作kubernetes集群的命令行工具,本文将简要介绍下kubectl的语法,并提供一些常见命令示例,如果你想了解深入了解kubectl的用法,请查阅官方文档[kubectl overview](https://kubernetes.io/docs/reference/kubectl/overview/),或使用kubectl help命令查看详细帮助。 安装kubectl请查看[安装及配置kubectl](connectviakubectl)
Expand All @@ -10,7 +10,6 @@ kubectl是一个用于操作kubernetes集群的命令行工具,本文将简要
kubectl的语法示例如下:
```
kubectl [command] [TYPE] [NAME] [flags]
```
**command:** command意指你想对某些资源所进行的操作,常用的有create、get、describe、delete等。

Expand All @@ -24,13 +23,13 @@ kubectl get POD
**NAME:** 即资源的名称,NAME是大小写敏感的。如果不指定某个资源的名称,则显示所有资源,如kubectl get pods 会显示Default命名空间下所有的pod。

你还可以同时获取多个资源的详细情况,如获取同一类型的资源详情,不同类型的资源详情:
<code>
```
kubectl get pods pod1 pod2
</code>
```

<code>
```
kubectl get pod/example-pod1 replicationcontroller/example-rc1
</code>
```

**flags:** 可选参数,例如,你可以使用all-namespaces来获取所有namespace下的资源对象。关于各命令的flag用法请参见[kubectl command](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands)

Expand All @@ -39,22 +38,22 @@ kubectl get pod/example-pod1 replicationcontroller/example-rc1
更多关于kubectl命令的介绍,请使用kubectl help。


###常见命令
### 常见命令

**kubectl create** - 使用一个文件或者标准输入创建资源。

<code>
```
// 使用exampe-service.yaml文件创建一个“service”对象
$ kubectl create -f example-service.yaml
// 使用example-controller.yaml文件创建一个"replication"对象
$ kubectl create -f example-controller.yaml
</code>
```

**kubectl describe** - 获取资源的详细状态,包括初始化中的资源。

<code>
```
// 查看名为<node-name>的node节点详情
$ kubectl describe nodes <node-name>
Expand All @@ -68,21 +67,21 @@ $ kubectl describe pods <rc-name>
// 查看所有pods,但不包含未初始化的pods
$ kubectl describe pods --include-uninitialized=false
</code>
```

**kubectl logs** - 获取某个pod的日志

<code>
```
// 获取一个pod的日志快照
$ kubectl logs <pod-name>
// 获取一个pod的实时日志流,类似于linux的'tail -f'
$ kubectl logs -f <pod-name>
</code>
```

**kubectl exec** - 对pod中的容器执行命令

<code>
```
// 从pod中获取运行"date"命令的输出,默认情况下,来自于pod中的第一个容器。
$ kubectl exec <pod-name> date
Expand All @@ -91,4 +90,4 @@ $ kubectl exec <pod-name> -c <container-name> date
// 从pod中得到一个交互式tty(控制终端),并执行/bin/bash
$ kubectl exec -ti <pod-name> /bin/bash
</code>
```
6 changes: 3 additions & 3 deletions manageviakubectl/webterminal.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
=====使用web kubectl =====
{{indexmenu_n>3}}
## 使用web kubectl

UK8S 在console中提供 web terminal,你可以通过web terminal 登录到集群内的Pod,并使用kubectl 操作和管理集群。

该Pod通过Deployment的方式启动,并通过特定的安全机制代理到UCloud控制台界面,如果你误删除了该Deployment,则无法使用console中的kubectl功能。

你可以使用下方的yaml文件重新启动一个Pod,yaml示例如下。

<code>
```
# ------------------- kubectl Deployment ------------------- #
apiVersion: extensions/v1beta1
kind: Deployment
Expand Down Expand Up @@ -57,5 +57,5 @@ subjects:
- kind: ServiceAccount
name: uk8s-kubectl
namespace: default
</code>
```

0 comments on commit 55bd535

Please sign in to comment.