K3S 安装及配置
K3S安装
curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_VERSION=v1.25.3+k3s1 INSTALL_K3S_MIRROR=cn sh -
避坑
最开始我安装的时候没指定INSTALL_K3S_VERSION 版本,默认是stable版本,然后这个stable版本具体是哪个版本忘记看了,总之就是安装完了 kubectl get all总会在最后报一个错。
然后我改成了1.24.1,这个版本更坑,kubectl get nodes里面竟然是空的。
最后选用了这个1.25.3的版本,是当前最新版本了,一切正常。
本文的其他内容都是基于此版本上操作的,如果版本不同,部分配置可能有差异
Ingress-Nginx安装
#1.下载yaml
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/deploy/static/provider/cloud/deploy.yaml
#2 因为网络问题,需要单独下载yaml中的两个镜像,最简单的方法是本地通过代理下载下来然后传到国内镜像仓库再拉下来打tag
#2.1 下载
docker pull registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343
docker pull registry.k8s.io/ingress-nginx/controller:v1.5.1
#2.2 上传,可以通过docker命令上传,我是直接打成压缩包然后通过华为云的压缩包上传的
docker save -o D:/webhook.tar registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343
docker save -o D:/controller.tar registry.k8s.io/ingress-nginx/controller:v1.5.1
#然后在页面中处理上传
#3 下载镜像到k3s服务器并打tag,这是我自己打包的镜像,可以直接用
docker pull swr.cn-north-1.myhuaweicloud.com/rivenpub/kube-webhook-certgen:v20220916-gd32f8c343
docker pull swr.cn-north-1.myhuaweicloud.com/rivenpub/ingress-nginx-controller:v1.5.1
docker tag swr.cn-north-1.myhuaweicloud.com/rivenpub/kube-webhook-certgen:v20220916-gd32f8c343 registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343
docker tag swr.cn-north-1.myhuaweicloud.com/rivenpub/ingress-nginx-controller:v1.5.1 registry.k8s.io/ingress-nginx/controller:v1.5.1
#4 修改deploy.yaml中的镜像后缀,(image地址中的"@"及后面的字符全部删掉)
#5 安装
kubectl apply -f deploy.yaml
查看安装结果
[root@ecs-153442 nginx]# kubectl get all -n ingress-nginx
NAME READY STATUS RESTARTS AGE
pod/ingress-nginx-admission-patch-z8wrx 0/1 Completed 0 12h
pod/ingress-nginx-admission-create-dj8cq 0/1 Completed 0 12h
pod/ingress-nginx-controller-6964fbdd77-49dbm 1/1 Running 0 31m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/ingress-nginx-controller LoadBalancer 10.43.57.207 <pending> 80:30302/TCP,443:30074/TCP 12h
service/ingress-nginx-controller-admission ClusterIP 10.43.15.241 <none> 443/TCP 12h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/ingress-nginx-controller 1/1 1 1 12h
NAME DESIRED CURRENT READY AGE
replicaset.apps/ingress-nginx-controller-6964fbdd77 1 1 1 31m
replicaset.apps/ingress-nginx-controller-6944ff8885 0 0 0 12h
NAME COMPLETIONS DURATION AGE
job.batch/ingress-nginx-admission-patch 1/1 5s 12h
job.batch/ingress-nginx-admission-create 1/1 5s 12h
Ingress-Nginx使用
直接替换调ingress yaml文件中的className为nginx即可,类似于下面
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: netcoretest
spec:
ingressClassName: nginx #这里写成nginx
rules:
- host: netcoretest.zhangsanfeng.com
http:
paths:
- pathType: Prefix
path: /
backend:
service:
name: netcoretest #指定你创建的svc的名称
port:
number: 5000
替换ingress默认的80端口
这是我安装nginx的主要原因,因为k3s所在服务器不支持80端口直接访问,所以要改掉
输入命令
kubectl edit deploy ingress-nginx-controller -n ingress-nginx
在containers的args中追加一行
- --http-port=8080
改完后类似下面这样
template:
metadata:
creationTimestamp: null
labels:
app.kubernetes.io/component: controller
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/name: ingress-nginx
spec:
containers:
- args:
- /nginx-ingress-controller
- --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
- --election-id=ingress-nginx-leader
- --controller-class=k8s.io/ingress-nginx
- --ingress-class=nginx
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
- --validating-webhook=:8443
- --validating-webhook-certificate=/usr/local/certificates/cert
- --validating-webhook-key=/usr/local/certificates/key
- --http-port=8080 #这一行是追加的
然后等待k8s自己更新就好了
查看效果可以通过访问我们之前的服务来测试
比如我上面建的哪个ingress原访问地址是 http://netcoretest.zhangsanfeng.com
那么现在的访问地址就是 http://netcoretest.zhangsanfeng.com:8080
K3S使用Docker
方法一:安装时指定参数
#1.在安装时通过环境变量INSTALL_K3S_EXEC
curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_VERSION=v1.25.3+k3s1 INSTALL_K3S_EXEC="server --docker" INSTALL_K3S_MIRROR=cn sh -
#2.或者直接传参
curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | sh -s - server --docker
方法二:安装后修改配置文件
#1.打开文件
vim /etc/systemd/system/multi-user.target.wants/k3s.service
#2.修改ExecStart那几行的值为:
/usr/local/bin/k3s server --docker --no-deploy traefik
#3.重启服务
systemctl daemon-reload
service k3s restart
kubectl 客户端连接K3S
将k3s主机点上的 /etc/rancher/k3s/k3s.yaml 文件拷贝到 kubectl所在机器的 ~/.kube/config
需要注意修改 yaml文件中的ip地址为 kubectl客户端可以访问到的地址
K3S 安装及配置的更多相关文章
- JDK安装与配置
JDK安装与配置 一.下载 JDK是ORACLE提供免费下载使用的,官网地址:https://www.oracle.com/index.html 一般选择Java SE版本即可,企业版的选择Java ...
- Node.js 教程 01 - 简介、安装及配置
系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...
- 烂泥:redis3.2.3安装与配置
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前一段时间写过一篇codis集群的文章,写那篇文章主要是因为当时的项目不支持redis自 ...
- mysql源码包手动安装、配置以及测试(亲测可行)
笔记编者:小波/qq463431476博客首页:http://www.cnblogs.com/xiaobo-Linux/ 记下这篇mysql笔记,望日后有用! redhat6采用centos yum源 ...
- 环境搭建系列-系统安装之centos 6.5安装与配置
按照国际惯例,系列目录先奉上: 系列一:系统安装之centos 6.5安装与配置 系列二:准备工作之Java环境安装 系列三:数据为先之MySQL读写集群搭建 系列四:谈分布式之RabbitMQ集群搭 ...
- ZooKeeper安装与配置
一. 单机安装.配置: 1. 下载zookeeper二进制安装包下载地址:http://apache.dataguru.cn/zookeeper/zookeeper-3.4.3/zookeeper-3 ...
- mac 下JDK 与 tomcat 的安装与配置
一.Mac下JDK的安装 1.先检测Mac是否已经安装过JDK,在终端中输入java 或者 javac 显示说明,表明已经安装过JDK,JDK版本查询终端键入java -version,终端会返回JD ...
- 烂泥:zabbix3.0安装与配置
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 这个月又快过完了,最近也比较忙,没时间写文章,今天挤点时间把zabbix3.0安装与配置 ...
- Jenkins入门系列之——02第二章 Jenkins安装与配置
2014-12-08:已不再担任SCM和CI的职位,Jenkins的文章如无必要不会再维护. 写的我想吐血,累死了. 网页看着不爽的,自己去下载PDF.有问题请留言! Jenkins入门系列之——03 ...
- TomCat的安装与配置方法
经过自己的研究,各种烦,所以要写个博客,帮助大家安装这个软件. 一.安装TomCat(因为大家都安装了jdk,所以就不写了) 1.下载TomCat 网址如下:http://tomcat.apache. ...
随机推荐
- JDBC的学习 3-1
JDBC的学习 3-1 JDBC基本概念 快速入门 对JDBC中各个接口和类详解 JDBC : 概念 :Java DateBase Connectivity java数据库连接,Java语言操作数据库 ...
- API设计中性能提升的10种解决方法
api的设计涉及到的方面很多, 分类是一个基本的思考方式.如果可以形成一个系列性的文字,那就从性能开始吧. 就像任何性能一样,API 性能主要取决于如何响应不同类型的请求.例如:典型的电商场景,显示用 ...
- Java String Pool--String s = new String("a") 到底创建了几个对象?
本篇重点(tips): 1. String Pool 是以Java 中 String 对象是不可变的这一特性为基础的 2. String Pool是Heap(堆)中的一块特殊空间(JDK 1.7 之前 ...
- Java SE 7、接口
接口 接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来 语法 interface 接口名{ //属性 //方法 } class 类名 imple ...
- Nginx+lua+openresty精简系列
1. CentOS系统安装openresty 你可以在你的 CentOS 系统中添加 openresty 仓库,这样就可以便于未来安装或更新我们的软件包(通过 yum update 命令).运行下面的 ...
- rook-ceph说明
cluster.yaml文件 文件中有几个地方要注意: dataDirHostPath: 这个路径是会在宿主机上生成的,保存的是ceph的相关的配置文件,再重新生成集群的时候要确保这个目录为空,否则m ...
- 给nsis窗口添加立体阴影
利用SetClassLong函数给nsis窗口添加了阴影,看起来很酷^_^ System::Call `user32::SetClassLong(i$HWNDPARENT,i${GCL_STYLE}, ...
- 220726 T1 树染色问题 (树的直径)
题目描述 高钧在校园中漫步时,经过了一棵树.这时,几个同学突然冒出来控制住了他. 这棵树有 nn 个节点, 每个节点有黑白两种颜色, 为了更好的 alb , 需要把所有节点染成同一种颜色. 为了更好的 ...
- .NET 7 RC 2 发布,倒计时一个月发布正式版
微软2022-10-22 发布了 .NET 7 RC 2,下一站是.NET 7正式发布,就在下个月Net Conf 2022(11月8日)期间正式发布. 经过长达一年时间的开发,.NET 7 规划的所 ...
- [ZJOI2012] 灾难 题解
爵士好提 Solution 定义\(u\)控制\(v\)当且仅当\(u\)死后\(v\)也会死 把图建出来,从食物向消费者连边 我们不难想到只能先处理食物,再处理消费者,所以先上个拓扑排序 想一想暴力 ...