1、K8Sは参照構築https://blog.51cto.com/lizhenliang/2325770
[ルート@ VM_0_48_centos〜]#kubectl 取得CS NAMEのステータスメッセージエラー スケジューラ健康OK コントローラを - マネージャ健康OK etcd - 1 健康{ " 健康":" 真" } etcd - 0 健康{ " 健康":" 真" } etcd - 2 健康{ 「健康」:" 真" }
注意:ブログにはいくつかの変更があります。
/オプション/ kubernetes / CFG /鼠径部-apiserver:
需要由: - イネーブル入場-プラグイン= NamespaceLifecycle、LimitRanger、SecurityContextDeny、ServiceAccount、ResourceQuota
改为:--enable-入院・プラグイン= NamespaceLifecycle、LimitRanger、ServiceAccount、ResourceQuota、NodeRestriction去掉:SecurityContextDeny
2、ダッシュボードのダウンロードアドレス:は/ opt /ダッシュボード/注:手動で作成、管理、token.yaml
gitのクローンhttps://github.com/kubernetes/kubernetes.git
[VM_0_48_centosダッシュボード@ルート]#LL * .yaml -rw-rを- r--の1ルートルート515 8月8日10時11管理者-token.yaml -rw-rを- r--の1つのルートルート264 8月5日16 27ダッシュボードconfigmap.yaml -rw-R - r--の1ルートルート1835年8月8日午前9時14ダッシュボードcontroller.yaml -rw-R - r--の1ルートルート1353年8月5日16時27分dashboard- rbac.yaml -rw-R - r--の1ルートルート551 8月5日16時27ダッシュボードsecret.yaml -rw-R - r--の1ルートルート339 8月7日午後03時24ダッシュボードservice.yaml
3、ダッシュボードservice.yaml内容を変更
[ルート@ VM_0_48_centosダッシュボード]#猫はdashboard- service.yaml apiVersion:v1の 種類:サービス メタデータ: 名前:kubernetes - ダッシュボードの 名前空間:kube- システム ラベル: K8S -app:kubernetes- ダッシュボード kubernetes.io /クラスタ・サービス:「真「 addonmanager.kubernetes.io / モード:リコンサイル スペック: タイプ:NodePort#添加Nodeport以便访问 セレクタ: K8S -app:kubernetes- ダッシュボード ポート: -ポート:443 targetPort:8443
4、サービスを開始
-fダッシュボードconfigmap.yamlを適用kubectl
-fダッシュボードsecret.yamlを適用kubectl
-fダッシュボードrbac.yamlを適用kubectl
-fダッシュボードservice.yamlを適用kubectl
-fダッシュボードcontroller.yamlを適用kubectl
5、パラメータを変更/usr/lib/systemd/system/kubelet.service:クラスタのDNSクラスタドメインを
kubectl記述ポッドkubernetes-ダッシュボード-746dfd476-mdv5n -n KUBE-システム
Bエラー:kubeletがClusterDNS IPが設定されていないとPodJソリューションを作成することはできません
[ルートVM_0_48_centosダッシュボード@]#猫の/usr/lib/systemd/system/kubelet.service
[単位]
説明= Kubernetes Kubelet
= docker.serviceは後に
必要= docker.service
[サービス]
EnvironmentGoogle nmentFile RO =は/ usr / kubernetes / CFG /オムレツ
ExecStart =は/ usr / kubernetes / binに/オムレツ$ KUBELET_OPTS
再起動=オン故障
KillMode =プロセス
[インストール]
WantedBy = multi-user.target
[ルートVM_0_48_centosダッシュボード@]#猫の/ opt / kubernetes / CFG / kubelet
KUBELET_OPTS = " - logtostderr =真\
--v = 4 \
--hostname-オーバーライド= 172.19.0.48 \
--cluster-DNS = 10.0.0.2 \ ###配置DNS
--clusterドメイン= cluster.local \ ###配置域名
--kubeconfig =は/ opt / kubernetes / CFG / kubelet.kubeconfig \
--bootstrap- kubeconfig = / OPT / kubernetes / CFG / bootstrap.kubeconfig \
--cert-DIR = / OPT / kubernetes / SSL \
--pod-赤外線コンテナ画像= registry.cn-hangzhou.aliyuncs.com / Googleがコンテナ/一時停止- AMD64:3.0"
修改完以后,重启服务发现正常
6、权限问题 发现官网yaml授权中只有默认的defalut ,需要重新绑定角色。
[ルートVM_0_48_centosダッシュボード@]#猫のADMIN-token.yaml 種類:ClusterRoleBinding apiVersion:rbac.authorization.k8s.io/v1beta1 メタデータ: 名前:ADMIN 注釈: rbac.authorization.kubernetes.io/autoupdate: "真の" roleRef: 種類:ClusterRole 名:ADMIN#クラスタ期の役割は、システムを構築するための時間が自動的に管理者の役割を生成しない rbac.authorization.k8s.io:apiGroup :科目 の種類:ServiceAccountの- 名:ADMINの 名前空間:KUBE-システム --- apiVersion:V1の 種類: ServiceAccount メタデータ: 名前:ADMINの 名前空間:KUBE-システム ラベル: kubernetes.io/cluster-service: "真の"
YAMLの公式サイトに:
[ルートVM_0_48_centosダッシュボード@]#猫のダッシュボード-rbac.yaml 種類:ロール apiVersion:rbac.authorization.k8s.io/v1 メタデータ: ラベル: K8S-アプリ:kubernetes-ダッシュボード addonmanager.kubernetes.io/mode:リコンサイル 名前:kubernetes -dashboard-最小限の 名前空間:KUBE-システム#只能看到systemo空间 ルール: #はダッシュボードには、取得、更新、およびダッシュボードの排他的な秘密を削除することを許可します。 - apiGroups:[ ""] リソース:[ "秘密"] resourceNameの:[ "kubernetes-ダッシュボード・キー・ホルダー"、 "kubernetes-ダッシュボード-本命"] 動詞:[ "GET"、 "更新"、 ""削除] # 'ダッシュボードを取得し、更新することを許可します - apiGroups:[ ""] リソース:[ "configmaps"] resourceNameの:[ "kubernetes-ダッシュボードの設定"] 動詞:[ "GET"、 "更新"] #は、ダッシュボードがheapsterからのメトリックを取得することができます。 - apiGroups:[ ""] リソース:[ "サービス"] resourceNameの:[ "heapster"] 動詞:[ "代理"] - apiGroups:[ ""] リソース:[ "サービス/プロキシ"] resourceNameの:[ "heapster" 、 "HTTP:heapster:"、 "HTTPS:heapster:"] 動詞:[] "GET" --- apiVersion:rbac.authorization.k8s.io/v1 種類:RoleBinding メタデータ: 名前:kubernetes-ダッシュボード-最小限 名前空間: addonmanager.kubernetes.io/mode:リコンサイル apiGroup:rbac.authorization.k8s.io 種類:ロール 名:kubernetes-ダッシュボード-最小限 科目: -種類:ServiceAccount 名:kubernetes-ダッシュボードの 名前空間:KUBE-システム
ログイントークンのための今後の更新:
#1 kubectl [VM_0_48_centosダッシュボード@ルート]が記述秘密/ $(kubectl 取得秘密-nkube-システム| grepの管理| awkは' {$ 1印刷} ')-nkube- システム 名:admin -token- j8sjg 名前空間:KUBE - システム ラベル: <なし> 注釈:kubernetes.io / service- account.name:管理者 kubernetes.io /service-account.uid:d9e482cf-b981-11e9- 9170 - 525400c318af タイプ:kubernetes.io /サービス説明責任トークン データ === = ca.crt: 1359のバイト 名前空間: 11 バイトの トークン:**************************** ********************* ##デザインの秘密
7、更新https证书有效期,解决只能由火狐浏览器访问,其他浏览器无法访问问题。
产生证书:
MKDIRキー&& CDキー のopenssl genrsa - アウト dashboard.key 2048 のopenssl reqを - 新しい - アウト dashboard.csr -key dashboard.key -subj ' /CN=172.19.0.48 ' のopensslのx509 -req - で dashboard.csr -signkeyダッシュボード。キー- アウトdashboard.crtは 秘密kubernetesを削除kubectl -dashboard-certsの-n kube- システムは 秘密ジェネリックkubernetesを作成kubectl - -dashboard-本命から -file = dashboard.key - から -file = dashboard.crt -n kube- システム#新的证书 POD Kubernetes削除kubectl -dashboard-746dfd476-b2r5f -n KUBE-システム#は、サービスを再起動します
8、效果展示: